【问题标题】:Referential integrity in a sharded database?分片数据库中的参照完整性? 【发布时间】:2014-10-04 00:05:15 【问题描述】: 如果外键不再起作用,如何在服务器端的分片数据库中维护参照完整性? 【问题讨论】: 标签: sql postgresql foreign-keys postgresql-9.3 【解决方案1】: 你不能。这就是为什么你不应该这样做,直到你不得不这样做。 【讨论】: “手动”我认为您的意思是错误的或错误的?是的。如果你问,那你就错了。我会的,而且我多年来一直在做数据库支持的应用程序。 @paulkon 在大多数“noSQL”数据库中,我知道它根本没有强制。该应用程序尝试维护关系并在它们被破坏/丢失时进行应对。但是说“noSQL 如何做 [x]”有点像说“我应该在车里放什么类型的机油?” ...如果不知道哪辆车,几乎完全不可能知道,因为它们都是不同的,而且甚至不是所有的汽车都有机油。 @CraigRinger 我想你误解了我的评论。我知道 nosql 不维护任何类型的引用完整性,并且我正在确认在分片 sql 数据库中强制执行应用程序端的引用完整性是否会同样痛苦。 正如理查德所说,手动操作通常不会很完美,这就是为什么我希望在答案中找到替代解决方案。 @paulkon 听起来您正在寻找具有跨节点 RI 之类的集群化全 ACID 数据库。此类数据库存在,但需要集群节点之间的快速低延迟链接,并且不能特别出色地扩展到大量节点。