问题描述
我已经为虚拟租车业务创建了此ER Diagram。每个CAR可以有很多副本(CARcopY),可以在其整个生命周期内多次租用。客户一次可以租用多个CARcopY。
我创建了一个名为HIREDETAIL的实体,该实体充当解决多对多关系的桥接实体。我希望整体方案处于第三范式(3NF)。
我看到的问题是在HIREDETAIL实体中。有一个名为HD_DAYS_RENT的列(租车天数)。还有另一列(HD_DUEDATE),它取决于HD_DATS_RENT以及HIRE表中的HIRE_DATE。它与CARcopY表无关。这是部分依赖还是传递依赖?它取决于一个素数和一个非素数属性。
此外,对于HD_TOTAL_COST(根据CAR_DAILY_RENT和HD_DAYS_RENT的每日租金计算的费用)也观察到类似的情况。它取决于CARcopY_NUM(主要属性)表,但也取决于HD_DATS_RENT(非主要属性)。
另一个传递依赖项位于HD_DAYSLATE中,基本上就是HD_DUEDATE和HD_RETURNDATE之间的区别。
如何解决所有这些依赖关系?我只看到了非常简单的部分和传递依赖关系,但是我无法解决这个问题。我应该更改什么,以便它至少出现在3NF中。
解决方法
根据我的理解,HD_DUEDATE
,HD_DAYSLATE
和HD_TOTAL_COST
是计算,因此,本质上是非规范化。
如果在此处删除三列,则您的模型将符合3FN规范。
我假设HD_RETURNDATE
可为空,在返回汽车时设置。