小编man*_*iam的帖子

如何强制由两个外键组成的复合主键的唯一性到同一个表?

我有两张桌子:一张user桌子和一张friendship桌子。假设friendship表格如下所示:

friendship
------------
user_one_id
user_two_id
other_fields
Run Code Online (Sandbox Code Playgroud)

我需要强制执行和忽略ordering值组合的唯一性,因此:(user_one_id, user_two_id)

user_one_id | user_two_id
------------+------------
          1 |          2
          2 |          1  -- the DBMS should throw a unique constraint error when trying to insert a row like this one.
Run Code Online (Sandbox Code Playgroud)

另外重要的一点是,user_one_id代表发起friendship,并user_two_id代表收件人,所以我不能只是做了两个“小”的ID user_one_id

问题

有没有办法使用约束来做到这一点,还是应该以其他方式实现?

postgresql database-design primary-key unique-constraint

8
推荐指数
1
解决办法
1632
查看次数

使用 postgres_fdw 从一个只读副本连接到另一个

我在 AWS 中有两个 postgres 数据库服务器,A 和 B。这些数据库有不同的表。这两个数据库也有自己的只读副本。

我的目标是一个简单的解决方案,用于从 A 副本到 B 副本进行跨数据库连接。从 master 查询不是一种选择,因为此功能适用于我团队中的分析师,而不是应用程序。

我按照说明通过执行 CREATE SERVER、CREATE USER MAPPING 和 CREATE FOREIGN TABLEs在 A 的 master 上设置 postgres_fdw ,并且我能够轻松地从 A master 查询到 B 副本。但是,这些服务器和外部表定义没有复制到 A 副本。我无法在副本上运行这些创建命令,因为它是只读的。

是否可以使用 postgres_fdw 从 A 副本到 B 副本?如果没有,这个问题还有其他解决方案吗?

postgresql replication read-only-database

5
推荐指数
1
解决办法
814
查看次数