在cakephp中,我有公司和个人资料模型。我想建立公司有0或1个配置文件的关系。是否适合使用公司hasOne Profile,以及Profile belongsTo Company?我需要注意哪些含义?表的架构如下。感谢。
create table companies (
id char(36) NOT NULL,
type int(10) NOT NULL,
primary key (id)
);
create table profiles (
id char(36) NOT NULL,
company_id char(36) NOT NULL,
provider_contact varchar(255) NULL,
primary key (id),
unique key (company_id),
foreign key (company_id) references companies(id)
);
答案 0 :(得分:2)
是的,您可以使用hasOne / belongsTo关系,如果公司没有配置文件,则子数组将为空。
在个人资料表中,您应该使用company_id来遵循Cake命名约定。
答案 1 :(得分:0)
要关注CakePHP's conventions,字段必须为company_id
,而不是companies_id
。
外键约束取决于您。我通常不添加它们。唯一约束似乎不正确。这意味着每个公司只能有一个配置文件。这与公司可以拥有0或1个配置文件不同。
答案 2 :(得分:0)
坚持惯例。
您需要调整架构才能执行此操作
create table companies (
id int(11) NOT NULL,
type int(11) NOT NULL,
primary key (id)
);
create table profiles (
id int(11) NOT NULL,
company_id int(11) NOT NULL,
provider_contact varchar(255) NULL,
primary key (id),
unique key (company_id),
foreign key (company_id) references companies(id)
);
其他人提到的是company_id
。而且,ids必须是整体的,并且是自动增量的。将它们作为字符是一种痛苦。