2

在我最近制作的 LDM 中,我有一个具有以下结构的实体:

Building_ID (Primary Key, Foreign Key),
Plant_ID (Foreign Key),
Build_Year (Primary Key),
Size

我需要使用这种设计在 SQL 数据库中创建一个表。我遇到的问题是如何处理这里的主键?SQL表可以有多个主键吗?如果这个问题的答案是肯定的,那么应该将哪一列作为唯一索引?我应该创建一个新列作为唯一索引标识符吗?

4

1 回答 1

1

我知道任何关系数据库系统(SQL Server、Oracle、Firebird、IBM DB2、Sybase 等)的任何 SQL 表都只能有一个主键 - 毕竟,它是键 - 只能有一个。

但是,一个主键可以由多个列组成(称为“复合主键”)。有一些缺点,例如:来自其他表的所有外键约束也必须指定复合 PK 中的所有列,因此连接表有点麻烦(因为您需要为包含在键中的所有列指定所有相等约束你的加入)。

除了主键之外,您还可以有多个备用键- 也可以唯一标识行的其他列。如果它们可以帮助您加快对表格的访问速度,那么这些是例如索引的绝佳候选者(但不要过度索引您的表格!少即是多)

于 2012-04-06T17:05:05.563 回答