我有一些关于MySQL数据库中复杂层次结构的数据库设计的问题。我将尽力解释结构尽可能简单。
我在一个表中有大量约100种不同类型的相关对象。这些对象是层次结构的一部分,彼此之间具有各种关系。这些层次关系存储在一个单独的表中。
对象A
对象A - >对象父母
对象B - >对象A
到目前为止,这么好。现在问题就开始了。我有许多其他对象/表链接到这些对象(上面的表2)。起初我以为我的查询会更容易在这些表中存储三个选定的“主要类型”,因为这将是系统中最常见的查询。
这个策略大部分时间都可以正常工作,但问题是表2和表1之间的连接可以在表1中的任何级别和任何类型上进行,这使得它有点困难。如果我要删除我的重复数据,如果我想优化系统,我将面临非常不可能的查询。
你会如何设计这种结构?
我现在倾向于解决方案是存储表1的“主要父级”,或者甚至存储可以在系统中自动生成主层次结构的json数据。我能想出的解决办法似乎并不好。