Что вы делаете с разовым фрагментом данных, который необходимо сохранить?

StackOverflow https://stackoverflow.com/questions/714885

  •  23-08-2019
  •  | 
  •  

Вопрос

Недавно меня попросили добавить что-нибудь для администратора сайта, где он мог бы что-нибудь «показать».

Предположим, что это «популярная статья».

Поэтому, естественно, у нас уже есть модель базы данных «статей», и она имеет около 20 столбцов, поэтому мне действительно не хочется раздувать ее больше, чем она есть.

Мои варианты:

  1. Добавьте «избранное» bool (или int) и поймите, что в любой момент времени будет отображаться только одна вещь.

  2. Создайте новую модель для хранения этого и любых других элементов, которые могут появиться.

  3. Я принимаю ваши предложения!;)

Что вы делаете в этом случае?Я сталкиваюсь с этим время от времени и просто ненавижу привязывать к чему-то еще одну колонку.Эту информацию НЕОБХОДИМО сохранить.

Это было полезно?

Решение

Если одновременно может быть представлена ​​только одна статья, добавление столбца bool является пустой тратой.Вам следует подняться на уровень выше и добавить столбец для FeaturedArticleID.У вас есть таблица Site_Settings?

Другие советы

Я бы, вероятно, просто добавил простую таблицу из двух столбцов, которая по сути представляет собой хранилище значений ключей.Затем добавьте новый столбец со значениями типа (featured_article_id, 45) или какой бы ни был первый представленный идентификатор.

Редактировать:как указано в комментариях rmeador, следует отметить, что это хорошее решение только до тех пор, пока все остается относительно простым.Если вам нужно хранить более сложные данные, подумайте о более гибком решении.

Вы можете использовать расширяемую модель, например таблицу атрибутов, а затем связывающую таблицу для формирования связи «многие ко многим» между статьями и атрибутами.Таким образом, подобные функции не требуют изменения схемы.

Создайте какую-нибудь таблицу global_settings со столбцами имя_параметра и значение_параметра.Поместите сюда идентификатор избранной статьи.

Для таких быстрых и грязных вещей я предпочитаю включать какую-то таблицу настроек:

CREATE TABLE Settings (
    SettingName NVARCHAR(250) NOT NULL,
    SettingValue NVARCHAR(250)
)

Если вам нужны настройки для каждого пользователя или клиента, а не глобальные, вы можете добавить столбец, чтобы идентифицировать его для этого конкретного пользователя/клиента.Затем вы можете просто добавить строку для FeaturedArticle и проанализировать идентификатор из строки.Он не очень оптимизирован, но открытый текст очень гибок, и это именно то, что вам нужно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top