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= 中]
我想为具有唯一 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= 中]