在SOA中,我一直对使用来自不同数据库或不同服务的数据的服务如何具有参照完整性以使最小数据跨数据库或服务重复而感到困惑。
例如,您在某种身份验证数据库中有一个用户表,并且您希望在另一个数据库中重用此用户信息。您还希望强制该用户的记录存在于身份验证数据库中。假设您要将身份验证数据库中的用户帐户与另一个数据库中的新闻文章相关联。怎么做的?你会用LDAP之类的东西做到这一点?
如果身份验证信息包含在同一个数据库中,只是一个不同的表,那么我可以看到如何使用外键来创建新闻文章和用户帐户之间的关联。
我一直在努力寻找关于这个问题的答案,但我必须使用错误的短语,因为我没有想出任何有用的东西。
答案 0 :(得分:1)
某些平台允许数据库之间的外键约束,而有些则不允许。如果您需要数据库之间的参照完整性,则需要选择支持它的平台。规范化 - 一个不同的问题 - 从不说“将这些列移动到不同的数据库。”
在多租户数据库中,您通常会选择不同的架构。 (通常情况下,您不会将所有用户的身份验证放在一个数据库中,并且将他们的身份验证用于另一个数据库。)
浏览标记为“multi-tenant”的问题;这可能是一个可以帮助你的术语。 MSDN有一个相当不错的鸟瞰图。