2009-04-03 5 views
0

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

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

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

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

  1. Tack на «признакам» BOOL (или INT) и понимают, что только одна вещь будет фигурировать в любой момент времени

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

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

Что вы делаете в этом случае? Я время от времени сталкиваюсь с этим, и мне просто не нравится, когда нужно зацепиться за еще одну колонку. Эта информация должна быть сохранена.

ответ

2

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

+0

yeh ... Я думал об этом просто потому, что в будущем я вижу больше таких вещей. – eyberg

0

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

3

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

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

+0

Я также хотел бы воспользоваться этим подходом, понимая, что, как только эта «функция» будет расширяться, чтобы охватить больше функциональности, вам нужно будет реорганизовать, чтобы создать полное решение. +1 – rmeador

0

Есть какая-то таблица global_settings с столбцами parameter_name и parameter_value. Здесь размещен признак статьи.

0

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

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

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