【发布时间】:2014-04-30 19:42:25
【问题描述】:
所以基本上如果我有这样的桌子:
ID |电子邮件 |密码 |权限组
我可以根据不同表中 GroupName 列值中的所有名称来定义权限组的枚举值吗
ID |组名 |权限节点 |继承
【问题讨论】:
-
显示
GroupName和PermissionGroup列的相关值以进一步了解。
所以基本上如果我有这样的桌子:
ID |电子邮件 |密码 |权限组
我可以根据不同表中 GroupName 列值中的所有名称来定义权限组的枚举值吗
ID |组名 |权限节点 |继承
【问题讨论】:
GroupName 和PermissionGroup 列的相关值以进一步了解。
ENUM 不是此任务的正确工具。
你描述的是foreign key constraint:
CREATE TABLE groups (
ID SERIAL,
GroupName VARCHAR(255),
PermissionNodes VARCHAR(255), -- not sure what datatype this should be
Inheritance VARCHAR(255) -- nor this
) ENGINE = InnoDB;
CREATE TABLE users (
ID SERIAL,
Email VARCHAR(255),
Password CHAR(60) BINARY,
PermissionGroup BIGINT UNSIGNED,
FOREIGN KEY (PermissionGroup) REFERENCES groups (ID)
) ENGINE = InnoDB;
请注意,外键通常引用父表的主键。如果要获取用户组的GroupName,只需加入表即可:
SELECT users.*, groups.GroupName
FROM users JOIN groups ON groups.ID = users.PermissionGroup
【讨论】: