引用维基百科的话:“弱实体必须使用外键与其属性一起创建一个主键。”,且“存在于另一个实体上”。但是一个实体不可能依赖于另一个实体的存在而没有(部分)主键和外键吗?
在传统的订单-订单行-产品关系中,订单行是一个弱实体,因为它的主键由其他实体的两个外键组成,比如orderID和productID。
那么订单实体呢?假设它长这样:
在传统的订单-订单行-产品关系中,订单行是一个弱实体,因为它的主键由其他实体的两个外键组成,比如orderID和productID。
那么订单实体呢?假设它长这样:
Order( orderID - not null, Primary key,
costumerID - not null, Foreign key,
date,
status,
...)
很明显,订单不能没有客户(客户ID),但同时,客户ID不是主键的一部分。
- 那么,在这种情况下,订单实体是否是弱实体?
- 如果我们省略了FK customerID的NOT NULL约束,订单将不再是一个弱实体,对吗?