如何在不同的表中创建 3 种类型的用户,但他们都有电子邮件、密码、用户名? [关闭]
Posted
技术标签:
【中文标题】如何在不同的表中创建 3 种类型的用户,但他们都有电子邮件、密码、用户名? [关闭]【英文标题】:How yo make 3 types user in different table but they have all a email, password, username? [closed] 【发布时间】:2021-10-15 23:26:07 【问题描述】:我计划开发一个包含三种类型用户(管理员、企业、个人)的系统。我想将每个用户的信息存储在一个单独的表中以用于数据差异。这三个都有用户名、密码和电子邮件。怎么做?
【问题讨论】:
如果你打算使用 Laravel,最好使用带有role
列的单个 users
表(允许每个用户拥有一个角色,例如 admin
、@987654324 @ OR personal)
,或带有数据透视表role_user
的roles
表来链接它们(允许每个用户拥有一个或多个角色,例如admin
和business
、admin
和personal
,只是admin
等)您需要选择最适合您的方法,但是为每个用户提供一个表可能是最糟糕的方法,因为它不适用于 Laravel 的模型和关系(说根据经验)
Do you have a link explaining what you say and how it works
...我说的有什么你不明白的地方吗?
【参考方案1】:
我想将每个用户的信息存储在单独的表中
...不,这是个坏主意。不要像那样去规范化你的模式,它会给你带来很多问题。
相反,只需在用户表中添加一个名为“角色”的列,以指示他们是什么类型的用户。
如果您需要仅对某些类型的用户有用的其他字段,那么要么
a) 将它们作为可选字段放入用户表中,或
b) 创建与主表具有 1-1 关系的单独的基于角色的表。
(恕我直言,第一个选项更灵活,需要更少的维护。)
【讨论】:
以上是关于如何在不同的表中创建 3 种类型的用户,但他们都有电子邮件、密码、用户名? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章