POSTGRESQL:Table 具有唯一 ID 但有多个接收者的消息模式

POSTGRESQL: Table schema for message with unique id but multiple receivers

我想为具有唯一 ID 的消息创建 table。然而,客户端也应该能够将相同的消息发送给多个接收者,所以我想出了以下 table:

CREATE TABLE IF NOT EXISTS messages (
  id SERIAL,
  receiver INT,
  content VARCHAR,
  CONSTRAINT msg_rcv_id PRIMARY KEY (id, receiver)
);

我使用 SERIAL 作为 ID,因为每条新消息都应有一个新的唯一 ID,但实际上使消息唯一的是 ID 与接收者的组合。因此,即使是相同的消息但接收者不同,现在每条消息都会获得一个新的 ID。我该如何解决这个问题?

问候, 一月

我会删除 receiver 列并创建一个新的 table:

CREATE TABLE receivers (
msgid int REFERENCES messages(id),
receiver INT,
UNIQUE (msgid, receiver)
);

我的语法可能有点不对劲,因为我已经很多年没有接触过 Postgres 了,但是你明白了:把消息-> 接收者关系放在一个单独的 table.[=12= 中]