我正在尝试为非常多样化的互连对象集开发数据模型。随着应用程序的成熟,支持的对象类型将显着增加。我想避免在添加新的对象类型时不得不修改模型/模式。灵活的对象关系
作为一个简单的例子,假设我从一个人和建筑模型开始。建筑物可以拥有多个所有者;一个人可以拥有多个建筑物;一个人可以住在房子里,在办公室工作......未来的版本可能会增加汽车和公司。汽车可以拥有车主,公司可以制造汽车,人们可以为公司工作等。大多数关系将是多对多的,有些将是一对多的,很少有一对是一对一的。尽管像“所有者”,“雇主”或“制造”这样的概念可以被视为“建筑”,“公司”或“汽车”对象的属性,但我不想将数据模型重新定义为支持新的属性类型。
我目前的想法是模拟这个类似于一个图,其中每一块数据是它自己的节点。节点对象将是非常简单的:
- 唯一标识符
- 名称(人表示)
- 节点类型
- 关系
扩展前面的例子中,可能的节点类型将是:
- 人
- 车
- 公司 大厦
的关系应该是:
- 节点A
- 节点B
- 关系类型 - 应用,拥有,已经是, etc
我有几个问题:
- 这种方法有什么缺点吗?
- 有没有描述这个的现有模式或模型?
- 有没有更好的方法?