PHP/MySQL网站带有用户表,需要添加用户组功能

标签 php mysql sql

我有一个 PHP 工作网站,带有 MySQL 后端,其中有几个用于不同目的的表。 该站点基于不同的部分或“环境”,例如错误跟踪器、项目管理等。 有一个中央“用户”数据库,其中包含所有用户及其相关详细信息。

在前面提到的每个“环境”中,都有自己的一组表,可以在某些字段中指定用户 ID。 例如bugtracker 表有一个名为 AssignedTo 的列,其中包含已分配错误的用户的用户 ID。

这些“用户 ID”列的字段类型(如 AssignedTo 示例)与中央用户表中的 UserId 字段相同,它是一个无符号的,清零 INT(5) 字段。

现在,我收到此网站用户的请求,要求允许在某些用户 ID 字段中指定用户组。

因此,再次引用 AssignedTo 示例,现在应该也可以将错误分配给用户组,而不是特定用户。

关于 PHP 脚本和数据库布局,执行此操作的最佳方法是什么? 现在,我将所有这些字段设置为与中央用户表的 UserId 相同的类型,即 INT(5)。 但是,我的 UserGroups 表中的 UserGroupId 字段的格式不同,INT(3)。

我也可以将此字段设置为 INT(5) 字段,但这无法解决我遇到的第二个问题:如何查看 AssignedTo 值是否正在引用特定用户,或用户组。

我正在考虑让 UserGroupId 字段从 99999 开始并向下计数,而 UserId 字段从 00001 开始并向上计数,因此假设如果 AssignedTo 以 9 开​​头,则它引用的是一个用户组。 但这对我来说似乎不是一个干净的解决方案......

还有更好的想法吗? 谢谢!

最佳答案

我想我明白你想说什么。我有个问题。一个用户可以属于多个用户组吗?

我可能会在错误表中添加一列,说明“AssignedTo”值是指 UserID 还是 UserGroupID。

为用户组创建单独的表。

如果用户可以属于多个组,请创建一个关联表,例如:AssociationID、UserID、UserGroupID。

否则,如果每个用户只能属于一个组,只需在 Users 表中添加一个 UserGroupID 列

关于PHP/MySQL网站带有用户表,需要添加用户组功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11210975/

相关文章:

javascript - AJAX JQuery 上传图片

php - 如何解决php/mysql插入失败的问题?

sql - 极长的 "Not In"请求

sql - 反向 SQL 查询模式修改

php - 分布式视频编码——Gearman vs Beanstalkd

php数据库在网页中显示

java - Minecraft BungeeCord/MySQL 服务器

php - 在php中的变量上加载行数据库

mysql - SQL 仅选择列上具有最大值的行

php - 在php中替换字符串的前两个字符