我有三张桌子。该模式如下所示:
员工(NID,姓名,薪资,指定,电话,分公司)
客户端(NID,Name,Insurance_type,电话,地址,is_active,Pay_per_month,Start_year,End_year)
付款(NID,应付款,应收账款)
支付表的主键将是NID,它将从Employee和Client表继承。如果将来自Employee和Client表的NID列合并,则all将是唯一的。是否有任何方法来制作这样的表,其中NID将从oracle 11g中的客户端和Employee表继承?
发布于 2021-06-05 14:35:56
这看起来不像是一个可行的设计。
执行此操作的标准方法是在PAYMENT表中为每个父级拥有一个单独的外键,即:
Payment (NID, NID_Client, NID_Emp, Payable, Receivable)
其中NID -支付表的唯一键
NID_Client是Client.NID值
NID_Emp是Employee.NID值
要添加FK约束,请执行以下操作:
alter table payment ADD CONSTRAINT FK_Payment_Emp
FOREIGN KEY (NID_Emp) REFERENCES Employee(NID);
alter table payment ADD CONSTRAINT FK_Payment_Client
FOREIGN KEY (NID_Client) REFERENCES Client(NID);https://stackoverflow.com/questions/67850522
复制相似问题