我正在为汽车零件设计数据库。我需要创建一个结构,其中包括组,子组和汽车零件。每个部分都属于一个子组,但子组可以有父子组。该父子组可以属于更高级别的子组。最终会有一个组 - 根。所以这是一棵经典的树。问题是没有固定数量的组。有时它可以是Group - >子组 - >汽车零件, 有时它可以是Group - >子组 - >子组 - >子组 - >汽车零件。
现在我有三个表:Groups,SubGroups,AutoParts。 我应该如何设计子组之间的关系? 在SubGroups表中创建一个名为parent子组的外键是一个好主意,它将引用同一个表中的另一行吗?如果上层只有Group,则该属性为null。
答案 0 :(得分:0)
你可以在2个表中完成所有这些....在第一个表上只插入所有组(父)
现在在其他表格中..插入所有子亚组子组和所有第n个子组...现在在此表中添加一个带名称的字段(例如 reports_to )< strong>将包含下一个子组ID 。 您现在可以检查,所以子组报告哪个子组ID ...将是其子子组......依此类推,您可以继续。 当 reports_to 字段中的 NO 值到一个子组时,这意味着该组是该组的最后一个第n个子组。< / p>
我希望你明白,这将完美无缺。 如果有帮助,请将其标记为答案。