[英]Mysql database help with tables
我整天都在嘗試整理 mysql 查詢:(任何幫助都會很棒。
我試圖把三件事聯系起來。 菜單項、菜單項組和權限級別。
所以我有五張桌子:
帶有 id 的 menuItems 表(唯一)
我有一個組表組 ID(唯一)
和一個 menuIdGroupId 表 groupId menuId
我有一個權限表 privilegeid(唯一)
和一個 groupsPrivlstable idGroups idPrivilege
權限表和組表實際上只是組和權限的列表。 privilegegroup 表和 groupMenu 表都旨在連接表以關聯所有內容。
我為查詢嘗試了很多組合,但都沒有工作:
SELECT *
FROM `menuIdGroupId`
JOIN `menuItems` ON menuItems.id = menuIdGroupId.menuId
JOIN `groupsPrivls` ON groupsPrivls.idGroups = menuIdGroupId.groupId
WHERE groupsPrivls.idPrivilege = '1'
LIMIT 0 , 30
如果 groupsPrivls 是
idGroups idPrivilege
7 0
7 1
1 1
1 2
1 4
13 5
9 2
12 1
1 5
1 6
7 2
7 4
7 5
7 6
和 menuIDGroupId
groupId menuId
1 30
7 29
1 31
1 29
1 33
7 33
4 33
1 32
7 30
7 31
id text
33 button 3
32 button 2
31 button 1
30 Church
29 About
結果是
groupId menuId id text idGroups idPrivilege
7 29 29 About Us 7 1
7 33 33 button 3 7 1
7 30 30 New to Church 7 1
7 31 31 button 1 7 1
1 30 30 New to Church 1 1
1 31 31 button 1 1 1
1 29 29 About Us 1 1
1 33 33 button 3 1 1
1 32 32 button 2 1 1
如您所見,我收到重復的條目,但我不明白為什么。 我猜我還沒設置八。 任何幫助都會很棒。
謝謝
艾倫
PS對不起格式太亂了!
你這里有一個根本問題:一個壞的 model。 您對建模(一起)感興趣的兩件事都是樹。 我鼓勵您查看鄰接樹或嵌套集樹。 那是假設您想要內部具有菜單項的菜單項,對於組也是如此。
另一種蒙皮的方法是將 model 都作為復合材料。 在數據庫中這樣做涉及使用 inheritance,但在這些情況下,它會非常簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.