【发布时间】:2019-10-28 09:08:27
【问题描述】:
我们正在实施面向服务的架构 (SOA)。我们有不同的服务数据库,客户管理、订单、运输、退款。在不同数据库中的表之间维护外键关系的策略是什么(因为 SQL Server 中不允许跨数据库外键)?是否应该用业务 API 规则替换外键?
这不是微服务;数据库信息在每个领域都被复制,但 SOA。我们不希望将所有内容都放在 1 个数据库中,因为不同的备份维护时间,不希望死锁/失控查询导致所有服务中断。面向服务的架构并没有规定我们应该拥有 1 个数据库还是多个。
【问题讨论】:
-
如果只有一个进程负责初始数据条目,也许分配一个 UUIS,然后仅将其用作参考?甚至可以用资源类型标识符补充 UUID?问题是当您处理外部引用时,检查它是否有效的唯一方法是调用原始系统以查看它是否知道它。
标签: database .net-core architecture microservices soa