У меня есть следующие таблицы:
- Пользователи
- Организации
- EMAIL_ADDRESSES
- Email_Address_Relations
И пользователи, и организации могут иметь адреса электронной почты, которые хранятся в таблице Email_Addresses и связаны с таблицей Email_Address_Relations.
Структура Email_Address_Relations
id char(36) NOT NULL
module varchar(64) NOT NULL DEFAULT 'User'
record_id char(36) NOT NULL
email_address_id char(36) NOT NULL
created datetime NOT NULL
modified datetime NOT NULL
Моя идея заключается в том, чтобы указать тип адреса электронной почты (Пользователь или Организация), используя подходящее значение в поле module . В полях record_id и email_address_id будет указан правильный адрес электронной почты из Email_Addresses для его владельца или организации.
Как мне настроить такую модель в CakePHP?
Спасибо,
м ^ е
Чтобы ответить на мой последний комментарий о настройке моделей для предоставления значений по умолчанию для поля module , YES, это можно сделать , как я узнал из форумов CakePHP .
Вот как это делается.
class User extends AppModel {
var $hasMany = array(
'EmailAddress' => array(
'className' => 'EmailAddress',
'foreignKey' => 'record_id',
'conditions' => array(
'EmailAddress.module' => 'User'
)
)
);
}
class Organization extends AppModel {
var $hasMany = array(
'EmailAddress' => array(
'className' => 'EmailAddress',
'foreignKey' => 'record_id',
'conditions' => array(
'EmailAddress.module' => 'Organization'
)
)
);
}