Как мне справиться со смещением новостных статей в отношении основных, популярных и категорийных областей? - PullRequest
1 голос
/ 08 февраля 2010

Рассмотрим такой шаблон (вопросы размещены ниже):

alt text

Допустим, я опубликовал статью о Суперкубке и отметил его в категории «Спорт». В моей таблице статей у меня есть флаг для избранных или нет, а также флаг для основной статьи. Так что, если я проверю основной флаг, он появится в качестве основной статьи. Если я опубликую другую основную статью днем ​​позже, она будет удалена из основной области № 1, если я не удалю последнюю основную статью, она не будет отображаться в области № 2 или области № 3.

Вопрос № 1: Я мог бы решить эту проблему, обновив свою логику SQL для области № 2, проверив как основные, так и популярные статьи, и исключив последнюю основную статью. Будет ли это идеальным способом справиться с ситуацией, если бы я хотел, чтобы она перешла к обычным статьям?

Вопрос № 2: Но если бы я сделал свою логику sql полностью на основе последних опубликованных материалов, и пользователь хотел бы указать статью в качестве основной, независимо от даты, я должен добавить дополнительную логику для этого ? Так, например, на протяжении всей таблицы статей может быть только одна основная запись за раз. Или я должен заставить пользователя обновлять дату статьи, поэтому основным является требование, чтобы главная публикация была последней?

Вопрос № 3: И скажем, после того, как моя статья в Суперкубке поворачивается с основной, чтобы стать первой, второй, третьей, четвертой статьей, я хотел, чтобы она появилась в списках моей категории в качестве первой статьи в разделе «Спорт» - для этого мне нужно будет сбросить основные и показанные флаги, имеет ли смысл добавлять код в мой код отправки статьи, чтобы в нем одновременно было только 4 признака и 1 основной? Очевидно, что если кто-то удаляется, он не может сместиться назад.

Буду признателен за советы по организации и логике отображения.

1 Ответ

1 голос
/ 08 февраля 2010

если вы вызываете эти запросы для того, почему бы вам просто не сделать

NOT IN ([ids that have already been used])

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

надеюсь, что это имеет смысл.

...