gpt4 book ai didi

mysql - 在数据库中使用循环 FK 引用

转载 作者:搜寻专家 更新时间:2023-10-30 21:55:49 25 4
gpt4 key购买 nike

我有两个 (mysql) 表 -- companyuser。它们的结构如下:

`user`
- id
- company_id (FK to company)
- name

`company`
- id
- name
- admin_user_id (FK to user)

user 表到 company 表的外键,反之亦然。

我想知道上面的模式是否可以,如果不是为什么不行,可以做些什么来改进它。

最佳答案

在高层次上,您的数据模型是有意义的。但是,您不能保证 admin_user_id 指向同一公司的 user。您可以通过以下方式解决此问题:

create table users (
user_id int auto_increment primary key,
company_id int,
name varchar(255),
unique (company_id, user_id) -- redundant but desirable for the foreign key reference
);

create table companies (
company_id int auto_increment primary key,
name varchar(255),
admin_user_id int,
foreign key (company_id, admin_user_id) references users(company_id, user_id)
);

alter table users
add constraint fk_users_company_id
foreign key (company_id) references companies (company_id);

关于mysql - 在数据库中使用循环 FK 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52996870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com