gpt4 book ai didi

mysql - 这是在 mysql 中制作一对一关系表的好习惯吗?

转载 作者:行者123 更新时间:2023-11-29 20:43:28 24 4
gpt4 key购买 nike

使用mysql数据库管理系统

我已经创建了一个客户表

create table customer
(id int ,
name varchar(3),
primary key(id));

现在我创建另一个表地址,我在其中从客户表中创建唯一的外键(id)

create table customer_add
(hno int ,
block_name varchar(3),
street_no int,
town varchar(20),
state varchar(20),
cust_id int unique,
primary key(hno),
foreign key(cust_id) references winecustomer(id));

这是一个错误的方法吗?如果是,我应该如何建立一对一的关系?除了 onetoone、onetomany、manytomany 之外还有其他关系吗?

最佳答案

基于 ERD(实体关系图),可以存在一对一的关系。但是,当您创建表时,您可以选择哪个表获取另一个表的主键,从而成为外键。在 ERD 中,您还可以通过查看哪个表具有 TOTAL/FULL 参与来确定哪个表应该具有其他表的主键。

示例:员工 ---1-----(有)----1---(经理)

这里我们说一名员工有一名经理,而经理有一名员工。假设员工具有 Employee_SSN 属性,那么在 Manager 表中,我们可以将 Employee_SSN 作为引用员工表的外键。或者,假设经理有 M_SSN,那么 Employee 将 M_SSN 作为引用经理表的外键。但是,如果其中一个人完全/完全参与,那么该人将收到另一个表的主键。建立一对一的关系是完全可以的(一对一的关系在 ERD 中更容易、更清晰地看到)。

关于mysql - 这是在 mysql 中制作一对一关系表的好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38513351/

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