数据库设计关联关系表,目的是承载"数据建模"的"数据结构"部分。
"数据建模"的第二个部分,是"数据操作"。即对存量和流量业务数据的各种业务处理和存储。
这部分早期是通过存储过程以及数据库自身的功能来约束,比如,自定义函数,存储过程等。随着程序越来越复杂,在工业界实践中,"数据操作"这部分逐渐从数据库系统中剥离,通过程序来实现。实际上,有些数据结构,甚至也剥离出来通过配置文件的形式存在了。
所以,"数据结构"的设计,必须结合"数据操作"的程序实现方式,不是完全按照范式的规定来的。
范式是什么?(normal form),就是规范化的样式,是一些要求和建议性的规则,俗话就是这样做最合理。当然也有别的理。范式不是必须实现的标准。随着操作数据的程序各异和世界的发展,数据结构的设计也必然多种多样。
但是,在关系数据建模中,有一些是不变的。那就是,抛开所有的业务细节和操作要求,
1,表都是实体的集合
2,实体有唯一标识
3,实体之间是有联系的,而联系通过关系表示
对于关系,只有三种就可以充分表达。即,一:一,一:多,多:多
至此,我们就明白关系表的意义就是,仅通过这3种关系,就可清晰的表示所有的表数据结构。
那么这三种关系,是如何在关系数据库中实现的?
思路很简单,就是将主键,