0
很抱歉,如果这个问题是混乱的,但...选择子类别的类别中,分猫有多个家长
我在数据库中有一个类别>子类别设置(所有的猫+ subCats是在同一张桌子)。
的表是这样的:
ID - AI id
name - cat name
parent - the parent of this category
level - 1,2 or 3
的问题是,某些类别可以有多个父母,这里有一个例子:
id: 23
name: furniture
parent: null
level: 1
id: 26:
name: mailroom
parent: null
level: 1
id: 218
name: bookcases
parent: 23
level: 2
id: 262
name: mailroom furniture
parent: 23, 26
level: 2
所以,收发室的家具应该出现在类别的家具(23)和收发室(26) 我的SQL选择子类别是这样的:
SELECT name, parent
FROM cat
WHERE #thisCat.id# IN (parent)
其中#thisCat.id#是父类别(例如, 23或26)
运行此操作时,如果子类别父级是列表(23,26),则只有当#thisCat.id#是列表中的第一个时才会选择它。
任何想法,我可能会出错。或者,有没有更好的方法来做到这一点?
因此,在单个记录中有多个父母,或者邮件室家具是否有两个记录? – Hituptony
在单个记录中,有两个(或更多)父母... –
通常,将字符串的分隔列表作为另一个字段的外键(即使在同一个表中)是一个坏主意。绝对要考虑将父/子移动到单独的关系表中,例如:hierarchy_tbl:{parent_id,child_id}这两列映射到主表中。另外,考虑从数据库中删除级别列。它可以根据您已知的关系信息进行计算。 – 2014-02-06 20:08:56