连接超类型/子类型?

时间:2012-08-21 08:24:58

标签: ms-access database-design

我必须连接Supertype Entity Called

  • 用户(User_ID(PK),User_Password,Registration_Date,..等)。

以下每个实体:

  • 员工(Employee_ID(PK),Fname,Lname,Birthdate等)
  • 客户(Customers_ID(PK),Fname,Lname,Birthdate等)
  • 供应商(Supplier_ID(PK),Fname,Lname,Birthdate ..等)..

如何做(对于关系数据库)使用Ms-Access?

1 个答案:

答案 0 :(得分:1)

在关系数据库中通常有3种表示继承的策略:

  1. 一张桌子里的所有东西。
  2. 单独表格中的具体类型。
  3. 所有类型都在单独的表格中。
  4. (3)可能是最常见且最“干净”的,即使它可能涉及到相当多的JOINing。在您的情况下,您在子表中引用FK(引用父表)并通过应用程序逻辑强制执行子项的 1 和排他性 2 。可以通过支持循环和延迟FK的DBMS以声明方式强制执行这些操作,但不能在MS Access中实现。

    您可能需要查看this post以获取更多信息。


    1 因此,用户不能只是用户 - 必须是员工,客户或供应商。

    2 因此,用户不能(例如)同时是客户和供应商。