【发布时间】:2019-01-21 18:47:45
【问题描述】:
我在数据库中有以下表格。 phrases 允许存储重复的短语。
CREATE TABLE phrases (
id INTEGER PRIMARY KEY,
phrase VARCHAR(1000),
creation_date TIMESTAMP WITH TIME ZONE NOT NULL,
);
CREATE TABLE intents (
id INTEGER PRIMARY KEY,
name VARCHAR(10) UNIQUE
);
我想在短语和意图之间创建一个连接表。我想强制执行:
- 每个短语都存在于短语表中
- 每个短语只出现一次
以下失败,因为phrases 中的外键不唯一。
CREATE TABLE phrases_intents (
phrase VARCHAR(1000) REFERENCES phrases (phrase),
intent VARCHAR(10) REFERENCES intents (name),
PRIMARY KEY (phrase),
);
允许此功能的最佳做法是什么?
【问题讨论】:
-
为什么
phrases表中允许重复?
标签: sql database postgresql schema