首页 > 解决方案 > 使用密码和智能卡时处理多种登录类型的最佳数据库模式是什么?

问题描述

我已经看到很多关于多个登录帐户(例如 Facebook、OAuth、密码等)以及如何在数据库设计中处理这些问题的问题,但是,我不确定如何最好地处理我的要求。

我有一个“用户”表,每个用户都可以登录我的后端系统(网络应用程序),或者我的最终用户赢表单应用程序。

注册用户时,可能会向他们提供用户名和密码,或智能卡,或两者兼而有之。

然后一些用户可以使用他们的智能卡从他们的客户端桌面应用程序登录到我的后端系统,并且具有密码的用户可以在线登录。

现在,如果有些用户同时拥有密码和智能卡功能,而有些用户只有密码或智能卡选项。

此外,每个用户都有一个角色(管理员、用户等)和一组 1x 或更多验证码(这些是智能卡登录使用的访问码)。

所以我正在考虑使用以下方法。

  1. 用户表
  2. 账户表
  3. 智能卡表
  4. 密码表

用户表保存用户信息(姓名、电子邮件等)

账户表链接到用户表广告告诉我们他们拥有什么类型的账户,还链接到智能卡和密码表,因此每个用户账户可以有一张或多张智能卡,以及一个或多个密码等。

我的上述问题意味着用户只有一个密码,智能卡的条目将为 NULL 等。这样可以吗?

有没有更好的方法来处理这个?

归根结底,并非所有用户都有所有登录方法,有些用户会,所以我想不出任何设计可以在表中的某处使用 NULL 值。

谢谢

标签: sqldatabasedatabase-designdatabase-schema

解决方案


推荐阅读