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