管理和链接分层数据

7cwmlq89  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(354)

因此,在我的应用程序数据库中,我有一个业务概要实体,它具有:
一个主要类别(如餐厅、酒店、医院等)
无限子类别(例如比萨餐厅、意大利餐厅等)
无限量的产品(如奶酪比萨饼、意大利香肠比萨饼等)
无限服务(如接送服务、送货服务等)
p、 我以餐厅类别为例来演示它的子类别/服务/产品实体,但是,它可以是任何真正的东西。
第一:我可以使用类似邻接列表模型的方法来定义无限类别及其相应的子类别,但是,服务和产品实体呢?如果知道服务和产品是子类别实体的子实体,如何将它们相互链接?
现在,这就是我所拥有的:图1
第二:如何将每个业务概要与其类别/子类别/产品/服务对应起来?!因此,我知道每个业务概要文件都在哪个类别下,每个业务概要文件都有哪些子类别/产品/服务。
这是我目前的Map:图2
我还不是一个新手数据库设计师,我正在努力使这个数据库尽可能高效,因为它将收到大量的流量。我现在所拥有的作为一个数据库方案是有效的还是有任何数据库设计概念需要深入挖掘?

pwuypxnk

pwuypxnk1#

当我读到这个问题的时候,我很担心这个问题会有一个复杂的树结构,但是读到你的作品到目前为止,它是非常干净和简单的。
就我个人而言,我认为你的思路是对的,我想说几句:
将服务和产品链接到子类别并不困难,您还可以轻松地将业务和产品/服务链接起来。我不认为这是一棵树。只要在创建记录时强制执行此限制即可。
邻接列表模型对于任意深度的树很有意义,您需要轻松找到子树,但我不确定这是否适合您的问题,特别是因为:
你没有任意的深度。你只是有父母和子类别。
对于业务类别系统之类的系统,条目的数量可能足够少,不值得增加额外的复杂性。读取整个表并将其保存在内存中可能相当快。
如果希望服务和产品同时链接到子类别和类别,最简单的方法可能是使用单个类别表,并使每个类别都有一个 parent_id 可能为空。

相关问题