欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据库的设计

程序员文章站 2022-03-10 19:13:44
一、多表关系 1.一对一(例如:人和身份证) 实现:可以在任意一方添加唯一外键指向另一方的主键;或者这节加个字段,整合成一张表 如:在人信息表中添加身份证id字段这一外键,指向身份证信息表的主键id;或者在人信息表中添加身份证id字段 2.一对多、多对一(例如:员工和部门) 实现:在多的一方建立外键 ......

一、多表关系

1.一对一(例如:人和身份证)

实现:可以在任意一方添加唯一外键指向另一方的主键;或者这节加个字段,整合成一张表

如:在人信息表中添加身份证id字段这一外键,指向身份证信息表的主键id;或者在人信息表中添加身份证id字段

2.一对多、多对一(例如:员工和部门)

实现:在多的一方建立外键,指向一的一方的主键

如:在员工表添加部门id字段这一外键,引用部门表的主键字段

3.多对多(例如:学生和课程)

实现:添加中间表,中间表至少引用俩表的主键作为联合主键

如:在中间表添加学生id和课程id,作为联合主键,分别引用学生和课程的主键

二、数据库设计的范式

1.1nf第一范式每一列不可再拆分,称为原子性。

2.2nf第二范式就是在第一范式的基础上所有列完全依赖于主键列

特点:一张表只描述一件事情,表的每一列都完全依赖于主键

3.3nf在满足 2nf 的基础上,任何非主列不得传递依赖于主键

我的理解是先确定一些需要的字段,再看看怎么分表吧,满足前面三大范式就差不多满足设计要求了。