0

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

  1. 使用这两个表,有两种身份验证 cookie,可能是两组login, logout,isAuthenticated方法。我想这样做,但我觉得 Web 框架并没有让这变得容易。

  2. 把两张桌子塞进去User (id, name, password, role, columns_for_customer, columns_for_admin)。这可能是最简单和最有效的选择。虽然我觉得它很难看,因为它让一半的桌子没有使用。假设CustomerAdmin分享很少的行动。

  3. 添加新表User (id, name, password, customer_id, admin_id)。一个中间地带。name我对移出CustomerandAdmin表(或在那里复制)感到特别不安。

我正在寻找有关最佳实践的答案。

4

1 回答 1

0

你应该有一个表,和一个辅助表来存储权限数据,和/或客户的列。

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

您的人员表应该只包含关于 id、用户名、密码、电子邮件的信息。

您应该有一个权限表,其 FK 到 person.id,以及一个 customer_info 表,其 FK 到 person.id

这样,您就可以使用最佳实践规范化您的数据。

于 2013-09-26T18:01:52.070 回答