Схема таблицы лучших практик для активного и неактивного поля - PullRequest
0 голосов
/ 23 декабря 2010

у меня есть простая таблица
Сообщения
id
title
content

Как лучше всего обрабатывать неактивные сообщения
1 - использовать таблицу temp_posts дляпереместить неактивные сообщения в эту таблицу
2 - просто установите флаг для активного поля сообщения

Я предпочитаю использовать 1 решение,
, потому что вы не будете использовать condtion (active = 1) каждый разя использую команду find

, так что вы можете предложить избежать использования условия (active = 1) каждый раз

Ответы [ 3 ]

3 голосов
/ 23 декабря 2010

Это пошло бы с # 2.У вас есть накладные расходы на совершенно отдельную модель и код find() с # 1.Если вы не хотите устанавливать t condition = array('active' => 1) каждый раз, установите его по умолчанию в Post Model с помощью beforeFind().Хотя последний может работать не во всех случаях при поиске на нескольких моделях.

0 голосов
/ 24 декабря 2010

Не думаю, что в этом случае есть лучшая практика, оба решения имеют свои преимущества и недостатки, см. Ответ Джейсона.

Лично я стремлюсь к # 1, потому что на концептуальном уровне вы, вероятно, имеете Drafts и Posts, а не Posts, которые либо активны, либо неактивны. Это небольшая разница, но в первом случае две модели могут иметь разные атрибуты. Например, Post, вероятно, будет иметь PublicationDate, тогда как такой атрибут не имеет смысла для Draft. Вы не можете моделировать это, используя только модель Post.

0 голосов
/ 23 декабря 2010

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

...