项目实战:数据库设计精选-架构师必修课(2020总结新)

1、每个表功能明确、职责单一

2、每个表的每一列不可拆分,如果某一列可以拆分(如班级:包含班级名称、班级编号..)就需要另外新建一个表,

3、列之间不关联、但是每个列与主键相关

4、表之间的主外键链接:

一个表A中的某个字段是否来源于另一个表B,那么B就是主键表

其次考虑一对多的包含关系(多的做外键表)

 

5、两表租车单、还车单形成一对一的关系,如下操作:

 

6、

汽车、车辆、车型(业务中提取的名称性的东西,一般会形成表);

出租等动词性的东西,最后一般会落实为业务层的方法

 

7、中间表的创建原则

①如果发现2个表(班级、课程)之间不是一对多、一对一关系,那么果断建一个中间表(主修课程安排表)从而实现多对多的关系!

②如果发现两张表A、B之间可以产生某种新的业务关系,而且新的业务关系表包含A、B表的主键,那么也可以在A、B表之间新建一张中间表!如:教室表、设备表之间可以新建一个教室使用设备表(表中外键教室表、设备表的主键)

 

8、一对一关系:用户表(用户名既是主键又是外键,与学生表学形成一对一的关系

 

8、如果有多条数据(行)的多个列的信息完全一致(如:设备表中,同一种设备类型编号、价格、都一样,那么表中就会出现冗余,为了重复利用,此时不如分割出去一个新表把类型编号、价格都放入设备类型表,设备表只要外键设备类型表就OK!)

9、单独抽出房东信息表,主要为了标准化、重复利用该表(减少冗余),如果该表信息重复利用率不高,那么就与其他表合并!

10、流程设计中,可以模拟业务流程的过程,看看在其中是否缺少相应的表,然后新增表。

表是为业务流程服务的

 

11、

① 2个表是使用关系的,如会议室表à使用设备表,那么就不是隶属关系,在使用关系时,2个表之间应该创建一个中间表(如会议室设备使用情况表),来描述这种使用关系!

下面的中间表,就展现使用关系:会议室使用设备信息;员工使用会议室

 

12、对原有信息进行过滤,可以使用一对一关系,主键表A是过滤对象,外键表B是过滤后的对象(基于A,但是可以比A少),如下,游记中提升为精华帖:

13、一对多关系(A表一对多B表),

①可以了解为A中同一条信息在B中多次重复出现!

②可以理解为A的一个信息,包含在B的多条数据中

15、每个表的完善,可以模拟实际业务的需求,进行表中字段的增加

16、如果数据表是主键表,那么该表的数据不能随便删除,应该有个disabale(失效字段)使之失效,而不是删除!:

17、

①主外键有时说明一种包含关系,如三级联动:

①主外键有时说明一种来源关系,B(外键表的某个字段)来自于A(主键表的某个字段),同时也说明A、B之间的业务关系。

18、要多关注一对一的关系

①(如:一个入住明细à对应一个退房)

②入住登记一对一离店结算

 

19、核心:表设计+业务流程图!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值