【发布时间】:2019-11-12 21:08:21
【问题描述】:
使用这样的表架构有什么好处:
CREATE TABLE review (
review_id SERIAL PRIMARY KEY,
account_id INT REFERENCES account(account_id) NOT NULL,
product_id INT REFERENCES product(product_id) NOT NULL,
rating SMALLINT NOT NULL,
comment TEXT,
UNIQUE (account_id, product_id)
);
或者约束本身应该是主键,像这样:
CREATE TABLE review (
CONSTRAINT review_pkey (account_id, product_id) PRIMARY KEY,
account_id INT REFERENCES account(account_id) NOT NULL,
product_id INT REFERENCES product(product_id) NOT NULL,
rating SMALLINT NOT NULL,
comment TEXT,
);
【问题讨论】:
-
老派与新派。
-
@MatthewLerner 。 . .我更喜欢第一种方法,因为我喜欢有一个单列主键。话虽如此,各有优缺点,很难说哪个更好。
-
@GordonLinoff 我也喜欢第一种方法,但我想知道除了浪费的磁盘空间之外,它是否有任何不利之处,除了我的感觉之外是否还有任何好处。只是想看看我在数据库设计方面更有经验的人所缺少的东西。
标签: sql postgresql database-design natural-key