zac*_*yka 12 mysql primary-key
我的项目和开发人员计划有以下结构:
developer table
id
developer name
etc...
project table
id
project name
etc...
developer _project table
???
Run Code Online (Sandbox Code Playgroud)
因为开发人员可以在多个项目中,并且项目可以有多个开发人员,所以我必须创建一个新表,但从我读到的是他们不知道我应该使用什么ID.
如果我使用id自动增量+ user_id + project_id,我会重复,因为id是主键吗?
Boo*_*eus 13
使用唯一的组合键:
CREATE TABLE `developer_project` (
developer_id INT(10) UNSIGNED /* etc... */,
project_id INT(10) UNSIGNED /* etc... */,
PRIMARY KEY dev_project (developer_id, project_id)
);
Run Code Online (Sandbox Code Playgroud)
如果您创建了一个,ID您可能永远不会使用它,因为您将查询您的developer_id和/或project_idLEFT JOIN
注意:确保列定义developer与project表和表相同.
小智 5
对于多对多关系,您可以简单地使用两个字段的复合主键.
示例(假设project_id和developer_id都是整数):
CREATE TABLE `developer_project` ( `developer_id` INT NOT NULL , `project_id` INT NOT NULL , PRIMARY KEY ( `developer_id` , `project_id` ) )
| 归档时间: |
|
| 查看次数: |
906 次 |
| 最近记录: |