管理员 table 和用户 table 之间应该是什么关系

What should be the relationship between an adminstrators table and users table

如果管理员账户可以创建用户账户,这是否意味着管理员table和用户table之间的关系是:

ADMIN OneToMany Users

比如我的项目中:

具有 adminstrateur 权限的人可以创建具有 technicien_sav 权限的帐户。显然,每一种 权限 都会授予拥有权限的人访问应用程序的不同部分。
但是,我没有看到我的应用程序的整体功能所必需的 SQL 关系。即:即使两者之间不存在关系,administrateur 也可以创建 technicien_sav 帐户。
你怎么看?
PS: 我使用 SQL 数据库已经很多年了,我希望这个问题不要太幼稚。

一般来说,admin 和 user 是同一个 table 的一部分。

Admin 是一个拥有更多权限的用户。在您的用户 table 中,您可以添加一列(例如 admin_column 并且可以是布尔值)所以如果 admin_column=true (用户是管理员)。

希望对你有所帮助

在评论中你说的是管理员和技术人员用户

have absolutely nothing to do with each other

他们在现实世界中的工作可能不同,但就您的应用而言,他们只是用户的两种不同变体,因此他们属于同一个 table(因为他们是同一类实体,应用程序的 "user",每个 table 应该代表一个实体)。事实上,他们 "admin" 只是用户的 属性,这将他们与其他类型区分开来。然后,您可以使用 属性(以及其他,如果您需要更微妙的信息)来确定他们在应用程序中拥有的特权。

事实上,用户拥有多组权限并不少见,因此 "users" table 和 "privileges" [= 之间存在多对多关系25=](当然,两者之间有一个映射 table)从长远来看可能更有意义并且更灵活。

P.S。为了解决您的原始观点,在您建议的原始结构中,如果您需要记录哪个管理员创建了哪些记录,您只需要在管理员和技术人员行之间建立某种关系。如果需要,您仍然可以在单个 "users" table 中执行相同的操作,只需在同一 table 中的两列之间建立一对多关系即可。例如您将有一个可选的 CreatedBy 列,并且将有一个指向 ID 列的外键,因此它可以记录添加当前记录的用户的 ID。