Это полностью зависит от того, что эти категории должны делать, а что нет. Вы можете просто определить количество констант , которые вы используете для категоризации материала. Но есть категории ...
- подлежит изменению? Хотите добавить больше со временем?
- редактируемые? Можете ли вы изменить их имена?
- вложенный
- должно иметь больше атрибутов, чем просто их идентификатор? Имена, описания?
Если вы ответили Да на любой из вышеперечисленных вопросов, вы захотите сохранить их как данные в базе данных. Это не зависит от Cake, это просто нормальное моделирование данных. Для Cake это означает, что вам нужно создать модель. То же самое касается рейтингов.
Итак, у вас будут эти таблицы:
- Пользователи
- категории
- содержание
- принадлежит к категориям
- имеетМногие рейтинги
- рейтинги
- принадлежит пользователям (полиморфный)
- принадлежит содержимому (полиморфному)
Возможно, вы захотите разделить оценки пользователей и оценки контента на две таблицы вместо использования комбинированной полиморфной таблицы (это означает, что у вас есть дополнительный столбец, отслеживающий, является ли оценка для пользователя или для контента).