在这里
我正在构建一个小型的saas产品,并在系统中使用了几个库。
图书馆
Aauth(用于身份验证)
当用户在应用程序中注册时,将使用使用的电子邮件地址和提供的凭据为他/她生成一个新帐户。系统将开设一个帐户并生成新的身份验证帐户(用户名和密码)。
没有问题。
我的问题的摘要如下:
假设有一个帐户A和B属于两个不同的客户,并且帐户A有3个用户,帐户B有2个用户。 Aauth库支持唯一的电子邮件地址作为登录名。
如何允许帐户A中的用户在帐户B中进行注册而没有问题。
我需要从体系结构的角度来回答。你会怎么做?
我认为的解决方案
在用户表中添加新列(将不起作用,Aauth使用电子邮件作为唯一标识符,如果我要实现此功能,则需要大量源代码修改)。
将身份验证库更改为Ion_auth。它的修改更简单,功能更少,但仍包含组。
为每个新帐户创建一个新的系统副本(只是在更新或发现问题时不可行)
为每个帐户创建一个新的数据库(与上面相同)
使用更简单的概念构建我自己的身份验证库,如下所示:
DB Schema
tbl_Accounts
id
name
tblt_users
id
email
password
account_id
tbl_groups
id
group_name
此解决方案的问题是解决了架构的复杂性,但不能解决用户可以注册到其他帐户的问题。请提出一个更好的方案来满足我的要求。
注释
这个post给了我一些设计方面的考虑。
如果我的解释不力或需要进一步编辑,请评论我很高兴进一步阐述或增强文字,谢谢