Ste*_*ven 40 sql database sql-server database-design data-modeling
我有可以在前端页面登录的用户,以及可以在管理页面上登录的管理员.
用户和管理员应该是具有不同角色的"用户",还是应该在不同的表中拆分?
OMG*_*ies 40
角色应与用户帐户分开跟踪,因为有人可以随着时间推移(或降级).在这种情况下,在两个不同的表中有两个不同的用户帐户是否有意义?我想不是.
这是我使用的基本结构 -
小智 9
如果管理员和用户共享字段,它们似乎应该放在同一个表中以避免重复结构.他们都有名字和姓氏.两者都是现实世界中的人类.这可能就是应该的样子.
但另一方面,国家和城市都有一个名字.两者都是地点.他们应该总是在同一张桌子上吗?有时他们在递归模型中.有时它们是分开的.
我的想法......管理员被认为是你系统中用户的"类型"?或者它是真正不同的东西,"用户"类型没有适用于它?这取决于管理员在您的系统中的真正含义.共享结构是沿着城市/州的线路吗?或者是"你是TYPE用户"的共享结构?
但如果有疑问,请将管理员放在用户表中,因为我怀疑它们是真正独立的.您可能希望共享两者的身份验证系统.您可能希望共享两者的帐户创建.除非管理员是一些特殊的东西,只有开发人员在后端使用.
用户意外成为管理用户的风险不应大于用户意外成为不同用户的风险,这绝对不应该发生.
请注意,如果在单独的表中有常规用户和管理用户,则常规用户表中的用户标识将与管理用户表中的用户标识匹配.您必须确保一种类型的用户ID 永远不会被意外地用作另一种类型.发现可能导致用户ID变为不同用户ID的内容更难发现这样的问题.
我相信你的问题没有绝对的真理,这取决于你的申请。
用户类型可能位于不同表中的两个原因是: