扫码阅读
手机扫码阅读
多对多关系解耦的数学原理
252 2024-08-27
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:多对多关系解耦的数学原理
文章来源:
TechLead 少个分号
扫码关注公众号
文章摘要:少个分号
本文讨论了在面向对象设计中多对多关系的解决方案和数学证明过程。作者建议在实际业务中避免使用多对多关系,并提出通过发现中间模型来拆分成两个一对多关系。以订单和商品的关系为例,通过将商品转化为订单项,实现了多对多到一对多的转化。
01. 集合论和数据库
文章利用集合论的概念来形式化关系数据库中的多对多关系。集合论用于研究集合的结构和性质,而关系数据库正是建立在集合论基础之上。关系通过有序对的集合来表示,而数据库中的表可以看作是元组模式和记录的集合,即 n 元关系的集合。
02. 证明
作者通过数学方式描述了多对多关系,并提出使用中间表来消除这种关系。中间集合由主键构成的元组,可以通过关系的合成原理得到一对多关系。进一步分析了当存在双向的多对多关系时,是否能够通过中间表进行等价转换。通过对集合 C1 和 C2 的分析,作者指出它们在数据库中并不总是等价的,取决于业务场景是否允许。
03. 应用
文章探讨了多对多关系模型在实际应用中解耦耦合的本质和理论基础。作者定义了计算机中依赖的概念,以及在关系数据库中表连接的依赖关系。针对多对多问题,作者提出需要中间表来解决主键重复和信息冗余问题,并强调中间表并非仅仅是关系表,而是具有同等地位的表。文章还指出双向关联关系可能造成环形耦合,建议通过剪断一段关系来实现解耦。
想要了解更多内容?
查看原文:多对多关系解耦的数学原理
文章来源:
TechLead 少个分号
扫码关注公众号
TechLead 少个分号的其他文章
领域建模的原则(战术篇)
当团队规模非常大、系统极其复杂的时,我们就需要制定一些原则来评审、检查各个各个团队产出的模型是否合适。
书单 |《编码:隐匿在计算机软硬件背后的语言》(含购买广告)
书籍推荐:《编码:隐匿在计算机软硬件背后的语言》
建模和编程中的契约 —— Design By Contract
1. 业务是生意,不是功能也不是交互,人是生意的主体。\x0a2. 人是不可靠的,需要用契约来约束生活的方方面面。\x0a3. 把软件组装起来的连接点就是接口,接口也是契约。\x0a4. 开发软件是关于生意的生意,管理团队也需要契约。
技术管理 | 作为 Tech Lead 应该操心什么?
Tech Lead 能力模型和参考工作任务清单。
系统设计 | UUID 和 自增 ID 怎么选?
两种方案的权衡利弊。
加入社区微信群
与行业大咖零距离交流学习
SAFe6.0与CMMI3.0映射
白皮书上线
白皮书上线