如果我有一个单独的成员资格提供程序 API,它不会在我的数据库中存储凭据和角色,我应该如何通过我的应用程序对用户的引用来维护引用完整性?
例如,我们与会员 API 交互,但向其传递了一个成员名称并基本上请求访问配置文件或角色,但我无权访问底层数据库。
然后,我们可以使用返回的角色或配置文件来控制应用程序内的访问。这种方法的问题在于,当我们保留有关该用户操作的信息(例如记录他们的更改或工作流中的任务分配)时,我们从我们的提供程序存储用户 ID,但由于信息不在我们的应用程序数据库中,我们不能对它进行 FK 以获得数据库完整性。
而且,真的,这是有道理的,因为会员提供者与我们没有合同来确保他们的更改不会违反我们应用程序数据库中的 FK。
但似乎我应该能够按用户在我自己的应用程序数据库中聚合信息,或者有一些东西可以强制对我的持久用户 ID 进行引用。
我正在考虑一个单独的“瘦”用户表,其中包含一些定性信息,例如来自我们提供商的名称和 ID……这个表可能会在第一次登录时填充。
好处是我现在可以仅在我的应用程序中针对某些用户信息汇总用户信息,并且可以在我的应用程序数据库中强制执行引用。缺点是我正在复制用户数据,这可能是陈旧的。