如何在mysql中创建多对多的关系

时间:2016-08-07 08:55:49

标签: php mysql database codeigniter mysqli

我相信标题是不言自明的。如何在MySQL中创建表结构以建立多对多关系。

我的表是:

pr_resignations_request(
    id, userids ,managerid  ,resignations_date  ,reason_type    requested_date, last_status,    date_last_status,   agreed_date exit_details,   exit_checklist, exit_type,  comments,   discussion, withdrawn,  manager_comments
);

pr_exit_checklist(
    checklist_id, category, action item, responsibility, time_completion, status
);

我正在尝试链接这两个表,以便foreach辞职请求有多个核对表项。此外,核对表项目在添加和删除时可以增长和缩小,并且在添加和删除时,辞职请求表也可以增长和缩小。仅供参考我使用的是codeigniter框架,我不知道如何实现这一点。

1 个答案:

答案 0 :(得分:2)

使用两个相关表的外键创建数据透视表。
假设您有一个包含id列和name列的产品表。 还有一个包含idname列的购物车表。
要在product和cart表之间创建多对多关系,请创建一个中间表,其中包含product_id列(外键引用id表的Product列)和cart_id(外键引用id表的Cart

更新1:

在您的情况下,中间表将包含pr_resignations_request_id(外键引用id表的pr_resignations_request列)和pr_exit_checklist_id(外键引用{{1} } checklist_id表的列)

更新2:

pr_exit_checklist

请将上述sql语句中的CREATE TABLE checklist_resignation ( pr_resignations_request_id <data_type>, pr_exit_checklist_id <data_type>, Constraint FOREIGN KEY (pr_resignations_request_id) REFERENCES pr_resignations_request(id), Constraint FOREIGN KEY (pr_exit_checklist_id) REFERENCES pr_exit_checklist(checklist_id) ); 替换为分别引用的列的数据类型。