0

在 cakephp 中,我有 Company 和 Profile 模型。我想建立公司有 0 或 1 个 Profile 关系。使用 Company 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)
);
4

3 回答 3

2

是的,您可以使用 hasOne/belongsTo 关系,如果公司没有配置文件,则子数组将为空。

在您的配置文件表中,您应该使用 company_id 来遵循 Cake 命名约定。

于 2013-07-25T20:45:29.137 回答
0

要遵循CakePHP 的约定,该字段必须是company_id,而不是companies_id

外键约束由您决定。我通常不添加它们。唯一约束似乎不正确。这意味着每个公司只能有一个配置文件。这与公司可以拥有 0 个或 1 个配置文件不同。

于 2013-07-25T20:44:35.193 回答
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其他人提到的那样。而且,ID 必须是整数,并且是自动增量的。将它们作为字符很痛苦。

于 2013-07-25T21:01:48.890 回答