具有相同登录名的多个数据库(.net core 3 API)

Multiple databases with same login (.net core 3 API)

因为我在一个新平台 (.net core 3 API) 上工作,每个公司都有一个单独的数据库。我发现自己遇到了一个在 Internet 上找不到解决方案的问题。

公司有不同的用户,但如果用户有权限,应该可以登录不同的公司。拥有一个包含所有 companies/users 的主数据库可以工作,但我会丢失用户的外键?最佳实践如何解决这个问题?

我说的不是 SQL 用户,而是在我们的应用程序上创建的用户。

Companies have different users, but users should be able to login on different companies if they have the right to. Having a master database with all companies/users would work but then I would lose the foreign keys to the users? How is this issue solved by best practices?

每个租户的数据库解决方案的最佳做法是维护一个具有全局配置数据的中央数据库(像这样),并根据需要将相关数据复制到租户数据库。所以你应该有一个中央数据库,你可以在其中管理用户和公司之间的关系,然后将每个公司的所有用户复制到他们公司的数据库中。

通常此参考数据移动缓慢,因此您可以通过直接从应用程序写入两个数据库或通过 运行 批处理作业来管理复制。