我在 MariaDB 上工作(这和在 MySQL 上工作一样)。
我在尝试在实现 2 个表之间多对多关系的表的 2 个字段上设置 2 个外键约束时遇到一些问题。
所以我有以下表格:
ACCOMODATION:每条记录代表一家酒店,包含以下字段:
Field Type Null Key Default Extra --------------------------------------------------------------------------------------------------------------------------- id bigint(20) unsigned NO PRI auto_increment user_id bigint(20) unsigned NO accomodation_name varchar(100) NO description text YES nation varchar(100) YES region varchar(100) YES province varchar(100) YES city varchar(100) YES stars int(10) unsigned YES geographical_position point YES accomodation_typological_id bigint(20) unsigned YES MUL accomodation_service_id bigint(20) YES
SERVICE:其中每条记录代表上表中酒店提供的一项服务:
Field Type Null Key Default Extra --------------------------------------------------------------------------------------------------------------------------- id bigint(20) NO PRI auto_increment description varchar(255) NO
然后我创建了一个 ACCOMODATION_SERVICE 表,它实现了前两个表之间的多对多关系,这些是字段:
Field Type Null Key Default Extra
---------------------------------------------------------------------------------------------------------------------------
id bigint(20) unsigned NO PRI auto_increment
accomodation_id bigint(20) unsigned NO MUL
service_id bigint(20) unsigned NO
因此,在该表的 accomodation_id 字段中,我将 accomodation 表的 id 放入 service_id 这张表的 id service 表。
如何正确指定这 2 个字段必须是 accomodation 和 service 表的外键?我认为我必须指定此引用约束。
最佳答案
你需要做的
ALTER TABLE accomodation_service ADD CONSTRAINT fk_accomodation_id FOREIGN KEY(accomodation_id) REFERENCES accomodate(id)
同样的
ALTER TABLE accomodation_service ADD CONSTRAINT fk_service_id FOREIGN KEY(accomodationfk_service_id_id) REFERENCES service(id)
关于mysql - 如何在此表上正确设置 2 个外键约束以实现 2 个表之间的多对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39848492/