1、一对一
如:用户信息和用户详情信息
一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询能力
2、实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为唯一(UNIQUE)
3、实现案例
CREATE TABLE tb_user(
id int PRIMARY KEY auto_increment,
photo VARCHAR(30),
nickname VARCHAR(20),
age int,
sex char(2),
desc_id int NOT NULL UNIQUE
CREATE TABLE tb_user_desc(
id int PRIMARY KEY auto_increment,
city VARCHAR(10),
edu VARCHAR(10),
income DOUBLE(7,2),
status VARCHAR(10)
INSERT INTO TABLE tb_user(photo,nickname,age,sex,desc_id) VALUES
('a.jpg','一场梦',23,'女',1),
('b.png','风清扬',35,'男',2),
('c.jpg','赵云',41,'男',3),
INSERT INTO TABLE tb_user_desc(city,edu,income,status) VALUES
('广州','硕士',300000,'单身'),
('湖北','本科',100000,'离异'),
('河南','本科',200000,'单身'),
ALTER TABLE tb_user ADD CONSTRAINT fk_user_userdesc FOREIGN KEY(desc_id) REFERENCES tb_user_desc(id);
如图执行语句创建用户表和用户详情表
往两张表中添加数据
再次执行上述‘逆向表到模型’ 具体对应关系如图。
业务需求:用户表r_user保存用户名等信息。现需要给每个用户设置工作基地,一个用户可以有多个工作基地,多个用户也可以有一个工作基地,即多对多关系。(外键,若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性)
设计方案:
方案一:建立一张用户基地表,与r_user与用户基地表,保持一对多的关系,如图所示,r_user的主键id做为r...
外键其实就是用于通知数据库两张表数据之间对应关系的这样的一个列,这样数据库就会帮我们维护两张表中数据之间的关系
如果不指定外键,数据库不知道两张表之间的对应关系
(1) 创建表的同时约束外键
create table emp(
id int,
name varchar(50),
dept_id int,
foreign key (dept_id) references dept (id)
常见的表关系分为三种
一对多、一对一、多对多。
一对多:对于一对多来说可以在多的一方添加列保存一的一方
alter table tf1 modify x char(4) default '';
alter table tf1 change y m char(4) default '';
mysql...
在数据库中,单表的操作是最简单的,但是在实际业务中最少也有十几张表,并且表与表之间常常相互间联系;
一对多、一对一、多对多是表与表之间的常见的关系,初学时在多表连接时会纠结如何写对应的Sql语句,下面就分享一些小技巧;
一对多是最基础的表间关系,意思是一张表A中的一条记录可以对应另一张表B中的多条记录,另一张表B中的一条记录只能对应一张表A中的一条记录
举个一对多的例子:
有两张表,
表A:学生表student(子表)
id name class_id(外键非空:班级id)
假设有两个数据表A和B,A表中有一个字段a_id,B表中有一个字段b_id,需要通过a_id和b_id建立外键关联。
首先,在A表中创建一个名为a_id的主键,表示a_id是A表的主键。在B表中创建一个名为b_id的主键,表示b_id是B表的主键。
然后,在B表中创建一个名为a_id的外键,表示a_id在B表中是一个外键,它与A表中的a_id字段建立关联。具体语法如下:
ALTER TABLE B ADD CONSTRAINT fk_a_id FOREIGN KEY (a_id) REFERENCES A(a_id);
这个语句的含义是在B表中添加一个名为fk_a_id的外键,它的外键字段是a_id,它与A表中的a_id字段建立关联。
完成以上步骤后,A表和B表之间的外键关联就建立完成了。现在,当向B表中插入数据时,如果a_id字段的值不存在于A表中,就会出现外键约束错误。同样,如果从A表中删除一个a_id值,也会出现外键约束错误。这种机制可以保证数据的完整性和一致性。
SpringMVC遇到的问题——GET http://localhost/spring_mvc_war_exploded/js/jquery-3.3.1.js net::ERR_ABORTED 404
基于Java+SpringBoot+Vue+HTML5人口老龄化社区服务与管理平台(源码+LW+调试文档+讲解等)/老龄化社区服务/老龄化人口管理/社区服务平台/社区服务管理/人口老龄化解决方案
基于Java+SpringBoot+Vue+HTML5高校办公室行政事务管理系统(源码+LW+调试文档+讲解等)/高校行政事务管理系统/办公室事务管理软件/高校办公室管理解决方案/行政事务系统