我的任务是为我的工作添加链接/菜单信息中心。它需要具有用户权限才能按用户查看/不查看每个链接记录。
大部分时间都是通过用户组完成的,我需要按用户为每个链接执行此操作。
我已经开始使用中间数据库表来加入users
和links
,并且如果允许他们查看每个链接,则保留用户权限。我将在下面展示数据库设计。
我需要帮助的是构建一个表/网格,为每个菜单链接上的每个用户设置权限。
我想这样做,如下图所示......
所以我需要从数据库和数据库中的链接以及权限记录中提取用户。
在垂直列中为用户构建网格,在水平线中构建链接。
然后权限设置将填入网格空间,我认为最好有一个简单的表单选择字段,用于是/否值。
管理员可以更改每个用户的权限并提交表单,然后需要更新每个权限记录!
这是我的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;
**权限表:user_link_permissions **
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;
我需要帮助的地方......
我不确定如何最好地生成用户,链接和权限网格。
以及如何在后端处理提交所有数据以保存所有设置。
我会发布更多进展,但现在我可以使用某个方向吗?
我意识到我需要查询并获取所有users
以及所有links
然后全部user_link_permissions
,但我不知道如何创建此网格并使其全部与正确的值等对应。
更新:
我刚刚发现这个链接似乎做了类似的东西,看起来像一个很好的参考。它甚至可以用AJAX保存网格值,这可以简化我相信的事情和负载。 http://runastartup.com/how-to-update-a-mysql-field-in-a-multi-table-matrix/