在 SOA 中,我对处理来自不同数据库或什至不同服务的数据的服务如何具有参照完整性感到困惑,以便跨数据库或服务复制最少的数据。
例如,您在某种身份验证数据库中有一个用户表,您希望在另一个数据库中重用此用户信息。您还希望强制该用户的记录存在于身份验证数据库中。假设您想将身份验证数据库中的用户帐户与另一个数据库中的新闻文章相关联。这是怎么做到的?您将如何使用 LDAP 之类的工具来做到这一点?
如果身份验证信息包含在同一个数据库中,只是一个不同的表,那么我可以看到如何使用外键在新闻文章和用户帐户之间创建关联。
我一直在尝试寻找有关此问题的答案,但我一定是使用了错误的短语,因为我没有找到任何有用的信息。
最佳答案
有些平台允许数据库之间的外键约束,有些则不允许。如果你需要数据库之间的参照完整性,你需要选择一个支持它的平台。规范化——一个不同的问题——从不说“将这些列移动到不同的数据库。”
在 Multi-Tenancy 数据库中,您通常会选择不同的架构。 (您通常不会将对所有用户的身份验证放在一个数据库中,而将他们经过身份验证的内容放在另一个数据库中。)
浏览标记为“ Multi-Tenancy ”的问题;这可能是一个对你有帮助的术语。 MSDN有一个相当不错的鸟瞰图。
关于database - 服务间数据的引用完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11313851/