Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql数据库表帮助_Mysql_Database - Fatal编程技术网

Mysql数据库表帮助

Mysql数据库表帮助,mysql,database,Mysql,Database,我整天都在尝试整理一个mysql查询:任何帮助都会很好 我想把三件事联系起来。菜单项、菜单项组和权限级别 所以我有五张桌子: 一张有桌子的菜单 唯一id 我有一张团体桌 组id唯一 和一个menuIdGroupId表 groupId 梅纽德 我有一张特权桌 privilegeid unique 还有一个集体精神 IDGroup 特权 特权表和组表实际上只是组和特权的列表。privilegegegroup表和groupMenu表都是用来连接表以关联所有内容的 我尝试了很多查询组合,但都不起作用:

我整天都在尝试整理一个mysql查询:任何帮助都会很好

我想把三件事联系起来。菜单项、菜单项组和权限级别

所以我有五张桌子:

一张有桌子的菜单 唯一id

我有一张团体桌 组id唯一

和一个menuIdGroupId表 groupId 梅纽德

我有一张特权桌 privilegeid unique

还有一个集体精神 IDGroup 特权

特权表和组表实际上只是组和特权的列表。privilegegegroup表和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
正如你所看到的,我得到了重复的条目,我不明白为什么。我猜我还没有在八点前准备好。任何帮助都会很好

谢谢

艾伦


对不起,格式太乱了

这里有一个基本问题:一个糟糕的模型。您对一起建模感兴趣的两件事都是树。我鼓励您查看邻接树或嵌套集树。这是假设您想要的菜单项中包含菜单项,对于组也是如此


另一种方法是将两者都建模为复合材料。在数据库中这样做需要使用继承,但在这些情况下,这将非常简单。

谢谢。我担心我的mysql不适合树木和复合材料。我可以做基本的表格和一些连接。我曾希望,由于menuItems是唯一的,因此有可能在idPrivilege中找到menuItems。我可以用PHP解析它,但我担心的是一个fndemental缺陷,这将是一个坏消息。答案似乎是使用groupby函数发布您的最终查询,然后自己回答问题。我很肯定它可能会给你你可以使用的结果,但它将无法做任何嵌套。