我的中间表是否应该包含复合 PK 或唯一索引

发布于 2024-10-28 06:52:17 字数 245 浏览 1 评论 0原文

假设我有一个 Products 表、ProductsCategory 表和一个 Category 表。

ProductsCategory 表有两列:ProductIDCategoryID。我应该在两列上使用复合主键还是唯一索引?

此外,如果我使用索引,我可以将其设为唯一索引或键。

Let's say I have a Products table, ProductsCategory table and a Category table.

The ProductsCategory table has two columns: ProductID and CategoryID. Should I be using a composite primary key or a unique index on the two columns?

Additionally if I use the index, I can make it a unique index or a key.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

生生漫 2024-11-04 06:52:17

不妨使用复合键 - 当您已经具有复合主键的唯一性语义时,无需添加唯一索引。

Might as well use a composite key - no need to add a unique index when you already have the uniqueness semantics of a composite primary key.

我恋#小黄人 2024-11-04 06:52:17

您必须使用删除级联选项创建双向外键两个表。
因为如果您删除其中一个类别,那么它必须删除 ProductCategory 上的关系行。

我的意思是你可以这样使用:

alter table ProductsCategory add constraint ForeignKey1 foreign key (ProductId) references Products (ID) ON DELETE CASCADE;
alter table ProductsCategory add constraint ForeignKey2 foreign key (CategoryId) references Category (ID) ON DELETE CASCADE;

You must create two way foreign key both table with on delete cascade option.
Because if you delete one of categories then it must remove relational rows on ProductCategory.

i mean you can use like this :

alter table ProductsCategory add constraint ForeignKey1 foreign key (ProductId) references Products (ID) ON DELETE CASCADE;
alter table ProductsCategory add constraint ForeignKey2 foreign key (CategoryId) references Category (ID) ON DELETE CASCADE;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文