使用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/