我想知道我的主键看起来应该是PRIMARY KEY (id, category_id, posts_id)
还是看起来像这样PRIMARY KEY (id)
?
这是我的MySQL表。
CREATE TABLE posts_categories (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
category_id INT UNSIGNED NOT NULL,
posts_id INT UNSIGNED NOT NULL,
date_created DATETIME NOT NULL,
PRIMARY KEY (id, category_id, posts_id),
UNIQUE KEY (category_id, posts_id)
);
答案 0 :(得分:2)
我建议使用:
PRIMARY KEY (category_id, posts_id)
id
值始终是唯一的 - 不会是category_id
和posts_id
的配对。
但我错过了您已在category_id
和posts_id
列上定义了唯一键,因此您的主键可能只是id
。但主键意味着它将是一个聚簇索引 - 您将比id
列更多地搜索这两列,因此搜索应该在两列上的非聚集索引上进行微小改进。
答案 1 :(得分:0)
多列键称为Composite Key或Compound Key
如上所述,它们完全有效并且有益处。见链接。 : - )