3

使用以下实体关系结构,我很难弄清楚 LOAN 和 ITEM 实体之间的关系是否有效?

LOAN 的弱实体使用 'loan_dateLeant' 的部分键和来自 CUSTOMER 和 ITEM 的主键来形成 LOAN 的主键。但是,LOAN 与 ITEM 具有“一对多”关系,因为贷款可以包含多个项目。但这当然意味着如果多于一件物品被借出,那么借出记录将有两个 item_id 值作为其部分主键?

替代文字

4

2 回答 2

3

你是对的,那是无效的——你不能使用一对多关系作为主键的定义部分。您可能会考虑做的是添加一个唯一loan_id性,您将其作为主键的一部分,而不是贷款包含的项目;那么单个贷款由其客户和贷款 ID(或客户、日期和贷款 ID)定义。

如果这不起作用,请创建date_leant一个日期时间字段,并提高其精度,直到您不可能(在系统的限制内)同时发生两笔贷款 - 单个客户进行交易的可能性有多大几毫秒内的两个单独的贷款?

请注意,这不会阻止 LOAN 实体作为“一个”参与关系;这只是意味着您不能使用“许多”来定义弱实体。

于 2010-03-17T16:50:30.953 回答
0

实际上,您可以这样做。

请记住,LOAN 的主键将仅取决于日期+客户标识符。只要“can make”关系上的最大基数为“1”(即,贷款仅与 1 个客户相关),就可以使用 LOAN 来确定主键。

ITEM 表会将贷款的(单个)标识符(customerID + date)作为 ITEM 中的外键。LOAN 的主键不受此建模的影响。

于 2011-03-11T17:04:53.340 回答