使用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保存它们……由于那篇文章的帮助,我将发布我的答案。我在谷歌上找不到太多关于这个问题的信息,所以我认为这将在未来帮助其他人