DB父子 vs. OO父子(技术)
程序员文章站
2022-05-08 22:11:20
...
引子 主键外键-父表子表再认识 一个联系信息的概念的分类例子: 用户的联系信息1 用户的目标对象(收货人)的联系信息2 厂商的联系信息1 经销商的联系信息1 经销商店铺联系信息2 由以上的信息可得,联系信息需求分为两大类: 与业务实体成一对一关系的,联系信
引子
主键外键-父表子表再认识
一个联系信息的概念的分类例子:
• 用户的联系信息1
• 用户的目标对象(收货人)的联系信息2
• 厂商的联系信息1
• 经销商的联系信息1
• 经销商店铺联系信息2
由以上的信息可得,联系信息需求分为两大类:
- 与业务实体成一对一关系的,联系信息ID以外键关系置入业务对象的。如用户、厂商和经销商自身 的信息;
- 用户、厂商和经销商等业务对象所需要的与他有业务关系多个联系人信息。用户的收货人信息和经 销商的店铺的联系信息。
分析
我的联系信息是我的个人属性,它竟然是我的“父”?对吗?
很明显,关系数据库里的父子关系概念与OO的父子类概念是不一样的。
很有趣的是,关系数据库集中关注的是对象间的横向“关系”,几乎没有纵向关系的表达;而OO则相反,继承多态都是纵向关系的表达。当然横向关系也可以表 达,好像表达得不太自然。
因此,关系数据库的“父子”不等于OO的“父子”。
横向“关系”的父是更基本的元素,元素粒度越小,元素越“长”越“老”。关系系数为一,只有主键;
横向“关系”的子是二次元素,元素内有父元素的组成部分;关系系数为多。一定有外键。
推荐阅读