验证不同类型的用户

时间:2013-09-26 17:57:11

标签: database authentication

在我的网络应用程序中,我有多种类型的用户,例如表Customer (id, name, password, ...)Admin (id, name, password, ...)。这两个都需要进行身份验证。我想知道哪种方法最明智:

  1. 使用这两个表,有两种身份验证Cookie,可能有两组loginlogoutisAuthenticated方法。我想这样做,但我觉得网页框架并不容易。

  2. 将两个表格填入User (id, name, password, role, columns_for_customer, columns_for_admin)。这可能是最简单,最有效的选择。虽然我发现它很难看,因为它没有使用一半的桌子。假设CustomerAdmin分享很少的行动。

  3. 添加新表User (id, name, password, customer_id, admin_id)。中间地带。关于将name移出CustomerAdmin表格(或在其中重复),我感到特别不安。

  4. 我正在寻找关于最佳做法的答案。

1 个答案:

答案 0 :(得分:0)

您应该有一个表和一个辅助表来存储权限数据,或者用于客户的列。

两个表不好,因为一个用户可以有两个记录。当该用户更改电子邮件地址时会发生什么?

您的人员表应仅包含有关身份证,用户名,密码,电子邮件的信息。

你应该有一个权限表,其中包含一个FK到person.id,以及一个带有FK到person.id的customer_info表。

这样您就可以使用最佳做法对数据进行规范化。