🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# DBMS 中的复合键 > 原文: [https://beginnersbook.com/2015/04/composite-key-in-dbms/](https://beginnersbook.com/2015/04/composite-key-in-dbms/) **复合键的定义:**具有多个属性的键称为复合键。它也被称为复合键。 **注意:** [超键](https://beginnersbook.com/2015/04/super-key-in-dbms/),[主键](https://beginnersbook.com/2015/04/primary-key-in-dbms/),[候选键](https://beginnersbook.com/2015/04/candidate-key-in-dbms/)等任何键都可以称为复合键,如果它超过一个属性。 ## 复合键示例 让我们考虑一个表`Sale`。该表有四列(属性) - `cust_Id`,`order_Id`,`product_code` 和 `PRODUCT_COUNT`。 **表 - `Sale`** ``` cust_Id order_Id product_code product_count -------- -------- ------------ ------------- C01 O001 P007 23 C02 O123 P007 19 C02 O123 P230 82 C01 O001 P890 42 ``` 这些列**中没有一个**可以在此表中充当主键。 单独的 **`cust_Id`** 列不能成为一个键,因为同一个客户可以下多个订单,因此同一个客户可以有多个记录。 单独的列 **`order_Id`** 不能是主键,因为相同的订单可以包含多个产品,因此可以多次出现相同的`order_Id`。 列 **`product_code`** 不能是主键,因为多个客户可以为同一产品下订单。 单独的 **`product_count`** 列不能是主键,因为两个订单可以具有相同的产品数量。 基于此,可以安全地假设键应具有多个属性: **上表中的键:`{cust_id, product_code}`** 这是一个复合键,因为它由多个属性组成。