簡體   English   中英

Mysql 數據庫幫助表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM