【发布时间】:2014-07-11 19:13:46
【问题描述】:
我需要在项目中实现动态层次结构。一种可能的解决方案是使用像 Neo4j 这样的图形数据库 NoSQL 解决方案。我在 RDBMS 中的图形实现中设计的内容。 在这个解决方案中,我设计了一个与自身具有多对多关系的表。 这方面的一个例子是here。 我有一个定义不同实体的表 (TABLE_A) 和另一个定义实体类型的表 TABLE_B,并且 TABLE_B 与其自身具有多对多关系,它定义了关系不同实体类型之间。这是存储在 JoinTable, TABLE_C 中。类似地,TABLE_A 与自身具有多对多关系,以定义在 TABLE_C 中定义的不同关系的实例。 在 Java 中,我只使用了两个类来实现这个结构。
现在,在我的情况下,这种多对多关系并不总是多对多关系。 有时是一对多,有时是一对一。
首先,No SQL Graph DB 是否比关系数据库更适合我的要求,因为我计划测试的数据将是十万条记录。
其次,如果 RDBMS 解决方案更好,那么有没有办法在连接表 TABLE_C 中包含一个属性,该属性定义关系的多重性,即它是否是一个对多或多对多或一对一关系?
【问题讨论】: