У меня есть следующие модели: Актив и Пользователь
Активы принадлежат пользователю
Пользователь имеет много активов
Простая модель базы данных будет выглядеть так
USER
id
name
ASSET
id
name
user_id
Теперь вопрос действительно о таблице загрузок, чтобы смоделировать тот факт, что пользователи могут загружать много ресурсов, а ресурсы могут загружать многие пользователи.
В cakePHP это будет таблица users_assets с простой моделью, подобной этой:
USERS_ASSETS (alias Downloads)
id
user_id
asset_id
Но это сбивает с толку, потому что если вы используете функцию выпечки торта, вам придется назначить
более одного отношения между пользователями и активами, отношения, описанные выше, и новые отношения HABTM: то есть ::
assets belongsTo Users | users hasMany assets
assets hasAndBelongsToMany user | users hasAndBelongsToMany assets
Почему я не могу просто иметь таблицу загрузок со связями:
user belongsTo downloads | downloads hasMany Users
asset belongsTo downloads| downloads hasMany Assets
DOWNLOADS:
id
user_id
asset_id
Полагаю, я не уверен, нормально ли определять несколько отношений для данного набора моделей.
Какой вариант лучше и почему - использовать таблицу users_assets с псевдонимом загрузок, чтобы сообщить торт о взаимосвязи HABTM. Или лучше использовать таблицу с именем downloads без отношения HABTM.