我有一个 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/