子类型表的SQL脚本

问题描述 投票:0回答:1

在 SQL 中,我有一个表

FACILITIES
(FacilityID 主键、FacilityName、FacilityAddress、FacilityPhone、FacilyType)

FacilityType
指的是

的子类型表
  1. AFFILIATION
    (设施 ID PK、从属关系开始日期、从属关系结束日期、员工类型、从属关系已验证);

  2. EMPLOYER
    (设施 ID PK、雇用日期、学期日期、职位、HR 联系人姓名)

  3. CLIENT
    (设施 ID PK、联系人姓名、联系人电子邮件、ContractStart、ContractEnd、ContractActive)

照原样,

FACILITY
可以是 1 个或多个子类型 - 这是事实。设施既可以是客户,也可以是雇主。如何编写将子类型绑定到
FACILITY
的脚本?

我正在考虑使用连接表,但是我可以使用子类型表来做到这一点吗?

sql subtype
1个回答
0
投票

子类型(或子)表 - 需要自己的 PK,并且父 PK 成为外键,允许您将一个或多个子记录关联到父记录。

所以你的子类型表定义变成:

AFFILIATION (AffiliationID PK, FacilityID FK, AffiliationStartDate, AffiliationEndDate, StaffType, AffiliationVerified);

EMPLOYER (EmployerID PK, FacilityID FK, HireDate, TermDate, Position, HRContactName)

CLIENT (ClientID PK, FacilityID FK, ContactName, ContactEmail, ConstractStart, ContractEnd, ContractActive)

那么你的查询就变成了

SELECT * FROM
FACILITY F
AFFILIATION A LEFT OUTER JOIN F.FacilityID = A.FacilityID
EMPLOYER E LEFT OUTER JOIN F.FacilityID = E.FacilityID
CLIENT A LEFT OUTER JOIN F.FacilityID = C.FacilityID
© www.soinside.com 2019 - 2024. All rights reserved.