### SSD7 Unit1 Skill Builder: Identifying Keys and Integrity Constraints B #### 客户表 (Customer) **主键(Primary Key, PK):** - **ID**: 每个客户都有一个唯一的标识符,用于区分不同的客户。这个字段是不可重复且唯一的。 **辅助键(Alternate Key, AK):** - **GivenName and FamilyName**: 这两个字段组合在一起可以唯一地识别一个客户,但不是主键。在某些情况下,如果ID丢失或不可用,这些信息可以用作替代标识。 **完整性约束(Integrity Constraints):** - **PK is not null**: 主键ID不能为空。这是确保每个客户都能被唯一标识的重要规则。 - **域(Domain)**: - **ID**: 使用VARCHAR类型存储客户ID。虽然通常ID会使用数字类型,但这里使用VARCHAR可能是因为ID包含了字母或特殊字符。 - **GivenName**: 存储客户的名,使用VARCHAR类型。 - **FamilyName**: 存储客户的姓氏,同样使用VARCHAR类型。 - **HomeAddress**: 存储客户的家庭地址,使用VARCHAR类型。 - **TelephoneNumber**: 存储客户的电话号码,使用VARCHAR类型。 - **Email**: 存储客户的电子邮件地址,使用VARCHAR类型。 - **CreditCardNumber**: 存储客户的信用卡号,使用INT类型。值得注意的是,在实际应用中,信用卡号应更谨慎处理,以保护用户隐私。 #### 花卉表 (Flower) **主键(Primary Key, PK):** - **ID**: 每种花卉都有一个唯一的标识符,用于区分不同的花卉种类。这个字段是不可重复且唯一的。 **辅助键(Alternate Key, AK):** - **CommonName and ScientificName**: 这两个字段组合在一起可以唯一地识别一种花卉,但不是主键。在某些情况下,如果ID丢失或不可用,这些信息可以用作替代标识。 **完整性约束(Integrity Constraints):** - **PK is not null**: 主键ID不能为空。这是确保每种花卉都能被唯一标识的重要规则。 - **域(Domain)**: - **ID**: 使用VARCHAR类型存储花卉ID。 - **CommonName**: 存储花卉的通用名称,使用VARCHAR类型。 - **ScientificName**: 存储花卉的学名,使用VARCHAR类型。 #### 花束表 (Bouquet) **主键(Primary Key, PK):** - **ID**: 每个花束都有一个唯一的标识符,用于区分不同的花束。这个字段是不可重复且唯一的。 **完整性约束(Integrity Constraints):** - **PK is not null**: 主键ID不能为空。这是确保每个花束都能被唯一标识的重要规则。 - **域(Domain)**: - **ID**: 使用VARCHAR类型存储花束ID。 - **Name**: 存储花束的名字,使用VARCHAR类型。 - **UnitCost**: 存储花束的单价,使用DOUBLE类型。 #### 花束组成表 (BouquetComponent) **外键(Foreign Key, FK):** - **BouquetID**: 指向花束表的ID字段,用于关联花束信息。 - **FlowerID**: 指向花卉表的ID字段,用于关联花卉信息。 **完整性约束(Integrity Constraints):** - **Referential Integrity**: 这表示BouquetID和FlowerID必须存在于相应的主表中,即花束表和花卉表中。这确保了数据的一致性和正确性。 - **域(Domain)**: - **BouquetID**: 使用VARCHAR类型存储花束ID。 - **FlowerID**: 使用VARCHAR类型存储花卉ID。 - **FlowerQuantity**: 存储每个花束中包含的花卉数量,使用INT类型。 #### 订单表 (Order) **主键(Primary Key, PK):** - **ID**: 每个订单都有一个唯一的标识符,用于区分不同的订单。这个字段是不可重复且唯一的。 **外键(Foreign Key, FK):** - **CustomerID**: 指向客户表的ID字段,用于关联客户信息。 **完整性约束(Integrity Constraints):** - **PK is not null**: 主键ID不能为空。这是确保每个订单都能被唯一标识的重要规则。 - **Referential Integrity**: 这表示CustomerID必须存在于客户表中,确保了数据的一致性和正确性。 - **域(Domain)**: - **ID**: 使用VARCHAR类型存储订单ID。 - **CustomerID**: 使用VARCHAR类型存储客户ID。 - **Date**: 存储订单日期,使用DATE类型。 #### 订单明细表 (OrderLineItem) **外键(Foreign Key, FK):** - **OrderID**: 指向订单表的ID字段,用于关联订单信息。 - **BouquetID**: 指向花束表的ID字段,用于关联花束信息。 **完整性约束(Integrity Constraints):** - **Referential Integrity**: 这表示OrderID和BouquetID必须存在于相应的主表中,即订单表和花束表中。这确保了数据的一致性和正确性。 - **域(Domain)**: - **OrderID**: 使用VARCHAR类型存储订单ID。 - **BouquetID**: 使用VARCHAR类型存储花束ID。 - **Quantity**: 存储每个订单中花束的数量,使用INT类型。 这些表设计考虑到了数据的完整性和一致性,通过定义主键、辅助键、外键以及相关的完整性约束来确保数据库的准确性和可靠性。此外,通过指定数据类型,可以更好地管理不同类型的数据,并提高数据处理效率。这种详细的设计对于构建高效且易于维护的数据库系统至关重要。
1 PK = ID
2 AK = Given Name and Family Name
3 Integrity constraints:
PK is not null
4 Domain:
ID VARCHAR
Given Name VARCHAR
Family Name VARCHAR
Home Address VARCHAR
Telephone Number VARCHAR
Email VARCHAR
Credit card number INT
Flower:
1 PK = ID
2 AK = Common Name and Scientific Name
3 Integrity constraints:
PK is not null
4 Domain:
ID VARCHAR
Common Name VARCHAR
Scientific Name VARCHAR
Bouquet:
1 PK = ID
2 Integrity constraints:
PK is not null
3 Domain:
ID VARCHAR
- ChihElena2013-03-31参考一下,寻找思路
- 粉丝: 16
- 资源: 32
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助