CakePHP, как использовать статические значения (категории) - PullRequest
0 голосов
/ 08 сентября 2010

Я хотел бы иметь категории и рейтинги для своего контента и пользователей соответственно, и я не уверен, как реализовать это, используя соглашения CakePHP?

Нужно ли создавать модель?

Ответы [ 2 ]

2 голосов
/ 08 сентября 2010

Это полностью зависит от того, что эти категории должны делать, а что нет. Вы можете просто определить количество констант , которые вы используете для категоризации материала. Но есть категории ...

  1. подлежит изменению? Хотите добавить больше со временем?
  2. редактируемые? Можете ли вы изменить их имена?
  3. вложенный
  4. должно иметь больше атрибутов, чем просто их идентификатор? Имена, описания?

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

Итак, у вас будут эти таблицы:

  • Пользователи
    • имеетМногие рейтинги
  • категории
    • имеет много содержимого
  • содержание
    • принадлежит к категориям
    • имеетМногие рейтинги
  • рейтинги
    • принадлежит пользователям (полиморфный)
    • принадлежит содержимому (полиморфному)

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

0 голосов
/ 19 октября 2010

Полагаю, вы ищете что-то вроде этого, ЕСЛИ вы не хотите использовать модель: http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/

один из возможных подходов к использованию "перечислений" для вещей, которые могут иметь только 1-5 состояний.

если у вас их больше 10 или вы хотите иметь возможность их динамического изменения (метка, активная / неактивная), вам понадобится отдельная таблица и отношение модели.

...