【发布时间】:2013-05-06 11:09:44
【问题描述】:
我正在尝试通过引用不同的表来设置外键。
想象一下桌子:
Active_Card((主键)Num_id号码, num_card号码,is_active varchar2);
TMP_CARD((PK)num_card number, reg_date date);
DEFINITIVE_CARD((PK num_card number, name varchar, create_date date)
所以 num_card 是 Active_Card 的外键。我的问题是如何在 Active_card 中引用两个表(TMP_CARD 和 DEFINITIVE_CARD)。
最好的问候,
【问题讨论】:
-
请告诉我们您正在寻找的语义。
-
我正在尝试为外键设置语义
-
如果 TMP_CARD 表不存在,我会: ALTER TABLE
Active_CardADD CONSTRAINTnum_card_ibfk_1FOREIGN KEY (num_card) REFERENCESDEFINITIVE_CARD(num_card); -
不是我要找的答案:我想知道您尝试建模的业务流程是什么样的。
-
你不能。看来您需要 Active_Card 中的另一列作为第二个 num_card。所以 Active_Card 看起来像
Active_card((primary Key) Num_ID Number, definitive_num_card, number, tmp_num_card number, is_active).. 虽然这对我来说似乎很奇怪。您最好对数据进行规范化,这样您就有一个 Card_numbers 表,其中的字段为(num_card, reg_date, name, create_date, Card_Type),知道 1 或 2 个字段将为空,具体取决于类型。