建议是程序开发的关键步骤,是将显示业务转换成数据运转的重要步骤
掌握了建表的要领是独立编程的前提。
表的关系 建表
pk uk fk ck nn
1列上多个约束
1约束定义在多个列上
表的关系:
service
id account_id
2002 1011 (在account表中是 唯一)
2003 1011
2004 1011
实现1对多
1对多关系 pl,uk fk 合表,违反第3范式
fk(保证1对多关系)
多对多关系 增加一张表,定义两个 fk . 用2个一对多实现多对多 .合表违反第二范式。
例如:
student course
stu_cour (sid ------ > student(id))
(sid ------ > course(id))
分开:没有数据冗余,没有数据不一致,dml的负担不重,数据记录很纯粹。
select join 负担小,操作复杂,慢 规范化做法
合表: dml 负担重,select简单,快 去规范化做法
1对1 实现方式
合表:夫妻表 一夫一妻 id hname ... ... wname
分表: 夫表 妻表
夫表