【发布时间】:2014-10-20 18:59:20
【问题描述】:
有没有更清洁的方法来做到这一点?
Products 表链接到 sub_categories 表,但是如果某个类别没有 sub_categories,我会在 Products 表和表类别之间建立链接?
【问题讨论】:
-
一个类别可以有 0 到多个子类别,所以我认为您的关系是从类别到子类别。无论如何,我不是 MySql Ninja,但这似乎是正确的路径。
有没有更清洁的方法来做到这一点?
Products 表链接到 sub_categories 表,但是如果某个类别没有 sub_categories,我会在 Products 表和表类别之间建立链接?
【问题讨论】:
有多种方法可以实现这一目标。取决于类别的深度级别以及您的首选实现可以使用以下任一方法实现的内容。
邻接列表模型 具有为每个子类别填充的自引用 parent_id 列的单个类别表。
嵌套集模型 带有“lft”和“rgt”列的单个类别表,用于表示集合中的位置。 "lft" 和 "rgt" 分别表示 Left 和 Right,因为 "LEFT" 和 "RIGHT" 是 SQL 中的保留字。
有一篇很棒的完整博客文章,其中包含示例和图表,详细解释了这两种方法的工作原理 - here。
我还建议您查看使用您选择的语言的库,这可能会完成您想要实现的目标。
【讨论】: