我有表Users
与ID
,username
,password
& type
列。我想通过创建一个普通用户来添加层次结构,这是一个可以管理少数普通用户的超级用户。它只有2级。 我应该添加一个parent
列并保存超级用户的ID。 IDK。用户拥有/管理其他用户
什么是正确的方法来设置它?
我有表Users
与ID
,username
,password
& type
列。我想通过创建一个普通用户来添加层次结构,这是一个可以管理少数普通用户的超级用户。它只有2级。 我应该添加一个parent
列并保存超级用户的ID。 IDK。用户拥有/管理其他用户
什么是正确的方法来设置它?
我会主张尽可能简单,所以我认为你的解决方案是一个很好的解决方案。 A parent
专栏将完成工作。
有,你可以在应用层解决潜在的问题,特别是:
当增加一个家长,你必须检查用户不是父母。您也可以定期检查周期,但只要您正确执行其他检查,就不应该有可能。
另一个可以防止这些问题的简单解决方案是拥有另一个表格,比如说Groups
,其中包含组的ID和用户ID,该用户ID是该组的超级用户,也是唯一的。然后用户可以拥有一个groupID列。这样可以避免上述两个问题,但由于超级用户可能拥有与组超级用户标识列不同的groupID列,因此未对其进行标准化。不过,您可以忽略超级用户的groupID列。
如果您知道每个用户只会拥有一个与其关联的超级用户,并且您将始终从用户搜索到超级用户,那么只需添加额外的parent
列即可使用。
如果这些假设不成立,那么您将需要创建一个将用户连接到其父母的连接表。
CREATE TABLE UserParents (
id INT,
user_id int,
parent_user_id int,
)
user_id
,并parent_user_id
都是外键Users
。