【发布时间】:2010-10-21 07:11:15
【问题描述】:
我有以下表格:
- 用户
- 组织
- 电子邮件地址
- 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 中建立这样的模型?
谢谢, m^e
要回答我关于设置模型以提供 module 字段的默认值的最后评论,是的,可以这样做,就像我 found out from CakePHP Forums。 p>
这就是它的完成方式。
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'
)
)
);
}
【问题讨论】:
标签: model-view-controller database-design cakephp model