【发布时间】:2011-10-23 20:24:40
【问题描述】:
处理可能来自两个不同表的表中的外键的最佳方法是什么?
为了更清楚:T1(id,c1,c2) - c1 和 c2 来自 T2 或 T3T2(id,name)T3(id,name)
考虑 T2 和 T3 必须是不同的表。如果c1 来自T1(例如),c2 可以来自T2 或T3。
我应该:
1.创建一个包含关联的新表并让c1 和c2 指向该表中的一个ID?即T4(id,id_from_T1,id_from_T2_or_T3,what_table)
2。创建 2 列,c1_parent,c2_parent,并制定一个约定,如果它是 1,那么它来自 T2,如果它是 2,那么它来自 T3。
还是有更好的全新方法?
谢谢。
【问题讨论】:
-
T2和T3结构一样吗?
-
不,我必须使用 IF 和 CASE。但目前他们都共享比我所需要的名称列。未来不确定。
标签: sql sqlite database-design