一个表字段可以链接2个附加表吗?

时间:2014-04-05 17:32:23

标签: sql database oracle database-design erd

您好我是一名学生在数据库中修课程,其中oracle是正在使用的RDBMS。我有一个问题,想弄清楚如何实现我的EERD的一部分,我希望得到一些见解。我已经附上了下图。

案件是针对血库的。血库有2个供应商:

  1. 献血的捐赠者(由身份证明)
  2. 该地区的其他血库(由身份证明)
  3. 我希望能够跟踪谁在库存中提供了特定的血液。当我试图评估它导致库存表中的一个字段引用2个不同表格中的2个字段时,我认为这是不可能的,除非它是我尚未学习的先进概念。

    我用于创建EERD的假设

    1. 捐赠者我捐了多个血迹
    2. 在短缺情况下,不同类型的血液可由外部血库供应
    3. 客户(健康中心)要求从库存中取出并记录为交易的血液
    4. 交易只能反映一个客户
    5. 客户可以执行多笔交易
    6. 一块血只能在一次交易中反映
    7. 交易只会反映一块血
    8. 为了区分偶尔和常规捐赠者,必须保持捐赠历史以确定捐赠的频率
    9. View EERD here

1 个答案:

答案 0 :(得分:0)

  清单表中的

字段引用2个不同表中的2个字段

虽然您可以在同一个字段的顶部创建两个FK,但这可能不是您想要的 - 这样的FK需要两个父行,并且您可能需要完全一个出现(而另一个缺席)。

虽然您可以手动(在应用程序代码中)实现" FK"可以选择"它的目标(又名"泛型"或"多态" FK),由于here所述的原因,这可能不是一个好主意。

相反,只需创建两个单独的NULL-able字段和两个单独的FK。然后确保在任何给定时间(通过CHECK约束)确切地其中一个字段为NULL,这将只使这些FK中的一个"活动"。更多信息here