扫码阅读
手机扫码阅读
多对多关系解耦的数学原理

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。


TechLead 少个分号
扫码关注公众号
文章摘要:少个分号
本文讨论了在面向对象设计中多对多关系的解决方案和数学证明过程。作者建议在实际业务中避免使用多对多关系,并提出通过发现中间模型来拆分成两个一对多关系。以订单和商品的关系为例,通过将商品转化为订单项,实现了多对多到一对多的转化。
01. 集合论和数据库
文章利用集合论的概念来形式化关系数据库中的多对多关系。集合论用于研究集合的结构和性质,而关系数据库正是建立在集合论基础之上。关系通过有序对的集合来表示,而数据库中的表可以看作是元组模式和记录的集合,即 n 元关系的集合。
02. 证明
作者通过数学方式描述了多对多关系,并提出使用中间表来消除这种关系。中间集合由主键构成的元组,可以通过关系的合成原理得到一对多关系。进一步分析了当存在双向的多对多关系时,是否能够通过中间表进行等价转换。通过对集合 C1 和 C2 的分析,作者指出它们在数据库中并不总是等价的,取决于业务场景是否允许。
03. 应用
文章探讨了多对多关系模型在实际应用中解耦耦合的本质和理论基础。作者定义了计算机中依赖的概念,以及在关系数据库中表连接的依赖关系。针对多对多问题,作者提出需要中间表来解决主键重复和信息冗余问题,并强调中间表并非仅仅是关系表,而是具有同等地位的表。文章还指出双向关联关系可能造成环形耦合,建议通过剪断一段关系来实现解耦。
想要了解更多内容?


TechLead 少个分号
扫码关注公众号
TechLead 少个分号的其他文章
系统设计 | 解决困难问题的思路
我们想要得到什么,就要先想想什么可以失去。
企业架构建模的挑战和机遇
企业架构关注业务的结构和行为,尤其是创建和使用业务数据的业务角色和流程。它已被定义为 “用于进行企业分析、设计、规划的体系方法,具有定义明确、长期主义、综合应用的特点,用于制定和执行企业战略。
技术管理 | 构建核心团队(Core Team)
如何构建你的核心团队,以小带大?
个人提升 | 程序员学习英语的经验和教训
程序员学习英语的经验和教训
理解 DDD:应用和服务分离
良好组织代码的关键不是将方法划得足够小,而是对象各司其职。复用是一门艺术,需要敏锐的眼光从变化中找到不变,这些不变的才是真正需要复用的。
加入社区微信群
与行业大咖零距离交流学习


PMO实践白皮书
白皮书上线
白皮书上线