使用PHP和MySQL构建用户权限设置的矩阵式网格

使用PHP和MySQL构建用户权限设置的矩阵式网格,php,mysql,permissions,acl,Php,Mysql,Permissions,Acl,我的任务是为我的工作添加一个链接/菜单仪表板。它需要具有用户权限才能按用户查看/不查看每个链接记录 大多数情况下,这是通过用户组完成的,我需要为每个链接的每个用户执行 首先,我使用一个中间数据库表来连接用户和链接,如果允许他们查看每个链接,还可以保留用户权限。我将在下面展示数据库设计 我需要的帮助是构建一个表/网格,为每个菜单链接上的每个用户批量设置权限 我想做类似下面这张图片 所以我需要从数据库中提取用户,从数据库中提取链接,以及权限记录 构建一个网格,用户在垂直列中,链接在水平列中 然后

我的任务是为我的工作添加一个链接/菜单仪表板。它需要具有用户权限才能按用户查看/不查看每个链接记录

大多数情况下,这是通过用户组完成的,我需要为每个链接的每个用户执行

首先,我使用一个中间数据库表来连接
用户
链接
,如果允许他们查看每个链接,还可以保留用户权限。我将在下面展示数据库设计

我需要的帮助是构建一个表/网格,为每个菜单链接上的每个用户批量设置权限

我想做类似下面这张图片

所以我需要从数据库中提取用户,从数据库中提取链接,以及权限记录

构建一个网格,用户在垂直列中,链接在水平列中

然后,权限设置将填充网格空间,我认为最好为yes/no值设置一个简单的表单选择字段

管理员可以更改每个用户的权限并提交表单,然后更新每个权限记录

下面是我的3个演示数据库表的外观

链接表

CREATE TABLE IF NOT EXISTS `links` (
`id` int(11) NOT NULL,
  `parent` int(11) NOT NULL DEFAULT '0',
  `sort` int(11) NOT NULL DEFAULT '0',
  `text` char(32) COLLATE utf8_bin NOT NULL,
  `link` text COLLATE utf8_bin NOT NULL,
  `permission` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL DEFAULT '0',
  `name` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT 'user',
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
用户表

CREATE TABLE IF NOT EXISTS `links` (
`id` int(11) NOT NULL,
  `parent` int(11) NOT NULL DEFAULT '0',
  `sort` int(11) NOT NULL DEFAULT '0',
  `text` char(32) COLLATE utf8_bin NOT NULL,
  `link` text COLLATE utf8_bin NOT NULL,
  `permission` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL DEFAULT '0',
  `name` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT 'user',
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
**权限表:用户链接权限**

CREATE TABLE IF NOT EXISTS `user_link_permissions` (
`id` int(100) NOT NULL,
  `user_id` int(30) NOT NULL,
  `link_id` int(30) NOT NULL,
  `permission` int(2) NOT NULL DEFAULT '0'
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=latin1;
我需要帮助的地方…

我不知道如何最好地生成用户、链接和权限的网格

以及如何在后端处理提交所有数据以保存所有设置

我会发布更多的进展,因为它来了,但现在我可以使用一些方向请

我意识到我需要查询并获取所有
用户
以及所有
链接
,然后是所有
用户链接权限
,但我不知道如何创建此网格并使其与正确的值一致,等等

更新:


我刚刚发现这个链接,它似乎做了一些类似的事情,看起来像一个很好的参考。它甚至使用AJAX节省了网格的价值,我相信AJAX应该可以简化事情和负载

我在这里发现了一个很棒的资源,它帮助我构建了它,甚至在每个用户设置被更改时使用AJAX保存它们……由于那篇文章的帮助,我将发布我的答案。我在谷歌上找不到太多关于这个问题的信息,所以我认为这将在未来帮助其他人