使用用户和组创建数据库的基本模型是什么?

joh*_*nny 10 database-design

我正在尝试为网站找到基本安全系统的最佳方法。我知道我想要用户和组。

我以为我会有:

user_table
user_id
user_name
...

group_type
group_id
group_name
parent_id
...

group_table
id
user_id
group_id
Run Code Online (Sandbox Code Playgroud)

第一个是用户,第二个是组,第三个是连接两者的中间表。一个用户有多个组。

这听起来好吗?

Joe*_*own 19

对此建模的传统方法是使用一种称为基于角色的安全性的模式。

这个想法不仅要有用户组,还要有权限组。这是图案的外观:

基于角色的安全 ERD

请注意,您希望避免表名的保留字,因此不要完全按照图中所示的方式命名您的表。

它的工作方式是,您的组或角色不仅拥有分配给它们的用户列表,还拥有分配给它们的权限列表。如果你跟随我,这允许你既可以驱动谁可以做什么,也可以驱动他们可以做什么。