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