在我的网络应用程序中,我有多种类型的用户,例如表Customer (id, name, password, ...)
和Admin (id, name, password, ...)
。这两个都需要进行身份验证。我想知道哪种方法最明智:
使用这两个表,有两种身份验证Cookie,可能有两组login
,logout
,isAuthenticated
方法。我想这样做,但我觉得网页框架并不容易。
将两个表格填入User (id, name, password, role, columns_for_customer, columns_for_admin)
。这可能是最简单,最有效的选择。虽然我发现它很难看,因为它没有使用一半的桌子。假设Customer
和Admin
分享很少的行动。
添加新表User (id, name, password, customer_id, admin_id)
。中间地带。关于将name
移出Customer
和Admin
表格(或在其中重复),我感到特别不安。
我正在寻找关于最佳做法的答案。
答案 0 :(得分:0)
您应该有一个表和一个辅助表来存储权限数据,或者用于客户的列。
两个表不好,因为一个用户可以有两个记录。当该用户更改电子邮件地址时会发生什么?
您的人员表应仅包含有关身份证,用户名,密码,电子邮件的信息。
你应该有一个权限表,其中包含一个FK到person.id,以及一个带有FK到person.id的customer_info表。
这样您就可以使用最佳做法对数据进行规范化。