欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

实例观察网络模型与关系模型对现实世界的建模差异

程序员文章站 2022-03-14 17:31:49
...
我感觉受 主流/传统的 Object Orientation 对 领域模型设计 的影响, 以及 SQL 对 关系模型设计 的影响, 目前领域模型基本都设计为 "网络模型" 也就是更倾向于 传统的数据结构.

举个例子, 比如要描述一颗螺丝 s1 和一颗螺母 c1, 以及把它们拧在一起的关系.

如果按照网络模型(传统数据结构)的思路, 那么就必须同时有一个把螺丝拧进螺母(s1.cap = c1)和一个把螺母拧上螺丝的动作(c1.screw = s1), 显然这跟现实世界的逻辑思维是有差别的.

反过来如果按照关系模型的思路, 只要一个建立拧接关系的动作 (new Screwing(s1, c1)), 就跟现实逻辑是恰好符合的.

不过在通用OO语言基础上实现关系模型的语义, 还是要费些周折, 不过也不是不可能. Object Relation Kin Model 就是一个结合通用OO语言与关系模型的例子.