我们正在尝试开发一个系统,人们可以在其中创建一个帐户,其中用户名是该人的电子邮件地址。问题是,这个人可以拥有自己独特的帐户(他是管理员),并且可以是其他人帐户的“用户”。
帐户的“管理员”能够将某人的电子邮件地址分配给他们的帐户,并为该人创建一个密码以作为用户登录。
在 MySQL 中,我们在尝试识别用户登录哪个帐户时遇到问题,因为电子邮件地址是唯一标识符。有更好的方法吗?
显然,为分配给每个人的每个帐户使用唯一的用户名可以解决此问题,但我们希望使用一个电子邮件地址,因为用户不太容易记住。
如有任何帮助,我们将不胜感激!
最佳答案
关注点分离原则适用,将两个功能(登录和访问帐户)分开,以便它们是单独的独立功能......
用户登录(电子邮件和密码只是验证他/她的身份)。它不与单个帐户关联...单独,将每个帐户与允许访问该帐户的用户关联。 (在数据库中,这将是多对多表)
然后,如果用户是管理员并且拥有多个帐户的访问权限,则询问他/她希望访问哪个帐户。
这带来了额外的好处,如果您有审核需求,出于审核目的,您将能够记录不仅是哪个帐户用于执行任何业务功能,还可以记录执行该功能的实际用户...
关于MySQL 唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3215290/