【问题标题】:Cross-database relations using UUID for PK使用 UUID 进行 PK 的跨数据库关系
【发布时间】:2016-01-21 01:05:21
【问题描述】:

这里说由于参照完整性,跨数据库的外键无法完成:https://docs.djangoproject.com/en/1.9/topics/db/multi-db/#cross-database-relations

是否可以通过使用 UUID 作为主键来解决这个问题?

我猜要么我不完全理解参照完整性,要么我不是第一个想到这一点的人,并且由于我还不知道的原因而无法做到。

【问题讨论】:

    标签: django database postgresql


    【解决方案1】:

    外键意味着“确保该列中的值存在于另一列中”。这在 PostgreSQL 中不能跨数据库工作,因为数据库不能“看到”彼此。它确实可以跨模式工作 - 使用完全限定的 schema_name.table_name。

    你为什么要引用另一个数据库中的列?

    【讨论】:

    • 我明白了,所以如果一侧被删除,另一个数据库在发生错误之前永远不会知道?我有一个需要 postgis 的地址模型,我只想使用 postgis db 后端。没什么大不了的,只是觉得有点孤立会更好。
    • @DavidTan 如果外部端被删除,您可以采取措施,例如删除另一行或将其设置为 null 或不执行任何操作。参见“关于删除级联”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 2017-03-13
    相关资源
    最近更新 更多