Sql 使用3个主键作为一个外键

Sql 使用3个主键作为一个外键,sql,Sql,我需要将数据从3个不同的表发送到一个表。 假设T1、T2、T3正在向员工发送ID。这里ID是T1、T2、T3中的主键,将ID作为外键指向Employee 当我这样做时,当从T1插入时,它给出了错误“T2中的外键冲突”,T3为T2,T1为T3 我有一个解决方案,我为每个T1、T2和T3创建单独的Employee表,但您知道所有这些表都会包含相同的数据,所以为什么不将它们放在一个表中呢。请提供任何建议。包括架构。这样的用法(或定义)显然有问题。(同样,这个问题与VB或VS无关)如果您将3个表(T1、

我需要将数据从3个不同的表发送到一个表。
假设T1、T2、T3正在向员工发送ID。这里ID是T1、T2、T3中的主键,将ID作为外键指向Employee

当我这样做时,当从T1插入时,它给出了错误“T2中的外键冲突”,T3为T2,T1为T3


我有一个解决方案,我为每个T1、T2和T3创建单独的Employee表,但您知道所有这些表都会包含相同的数据,所以为什么不将它们放在一个表中呢。请提供任何建议。

包括架构。这样的用法(或定义)显然有问题。(同样,这个问题与VB或VS无关)如果您将3个表(T1、T2、T3)中的外键值存储在另一个表(T4)的一列中,那么您可能从数据建模中漏掉了一个“实体类型”。您不能使用这种设计,而且很容易让DBMS强制执行您的密钥约束。您需要标记哪个表(从T1、T2、T3)与T4中每行的ID值匹配;然后包含您需要的信息。编写执行代码将是地狱;不要这样做。重新设计模式以避免需要。让我澄清我的问题。我使用三种形式(医疗、非医疗和Car),其中数据彼此不同,另一种形式(收入)具有NIC等附加到所有形式的属性。现在我想使用NIC作为一个表中所有(医疗、非医疗和汽车)表单的外键作为收入。在这种情况下,如果我不允许使用任何不同的密钥I-e NIC作为医疗和收入外键中的主键,ID作为非医疗和收入外键中的主键,以及其他东西作为车内主键和收入外键,我该怎么办。再来一次。