У меня есть три таблицы (блоки, роли, пользователи), где справедливо следующее в схеме:CakePHP таблицы базы данных определения трех зависимых отношений
blocks have many users
users have many blocks
users have many roles, but the roles are specific to the block (and the user)
blocks have many roles, but the roles are specific to the user (and the block)
Например:
user => john
belongs to block => 'metro' with role => 'builder'
belongs to block => 'rural' with role => 'investor'
user => dan
belongs to block => 'metro' with role => 'resident'
belongs to block => 'rural' with role => 'investor'
У меня есть присоединиться к таблице с именем block_role_user со следующими столбцами:
id block_id role_id user_id created modified
Я думаю, это было бы hasandbelo ngstomany между всеми тремя таблицами. Я подумал о том, чтобы установить это с помощью таблицы hasandbelongstomany между блоками и пользователями, а другая таблица hasandbelongstomany между ролями и пользователями, но это не будет полностью определять уникальную взаимосвязь между блоком, ролью и пользователем.
Я ищу совет по наилучшему способу приблизиться к этому и оценить любые советы.
Я искал привязку модели, но это, похоже, не относится к уникальным отношениям между тремя частями, которые у меня есть.
Я подумал о создании модели, называемой blockroleuser, и установлении отношений с использованием стандартного соглашения cakephp. Если это приемлемый способ, можете ли вы дать некоторые рекомендации по наименованию файлов модели и контроллера?
Еще раз спасибо ...
I оцените советы и объяснения. Все сделанные вами предположения были верны на моем конце (конкретная связь между пользователем, блоком и ролью, в основном используется для выбора (и получение пользователей, указанных в конкретном блоке с той ролью, которая входит в игру только для решения, может ли пользователь редактировать что-либо, связанное с блок) .Спасибо за руководство к модели.Это было так, как я собирался, но повесился на конвенции именования. Я думаю, что «участие» будет отличным именем, но согласитесь, что соглашение действительно не имеет значения до тех пор, пока он точно описывает и понимается позже. – pinned5th
Кстати, я проверю ответ как полезный, как только мой рейтинг репутации позволит мне - еще раз спасибо. – pinned5th
Добро пожаловать ... – ndm