![]() |
1
0
如果表3包含表1联合表2中的所有值,则 inheritance scheme :
这样,从表3中删除将相应地级联到表1或表2。 否则,如果表3只是表1联合表2的一个子集,那么将表4作为完整集引入即可。
但是,要处理级联删除,您需要从表4中删除(尽管您可以在表3上做一个触发器来为您处理这一点)。 编辑(因为我认为这是一个重要的观点,应该与评论分开):
IMO-你的数据模型就坏了。表1和表2是不相关的,但您试图将它们塞入表3中的同一列中。如果表1和表2以某种方式相关,那么您需要对其建模。 如果父表(表4)相关,则引入父表;如果父表(表1-FK、表2-FK)相关,则引入第2列;如果父表(表1-FK、表2-FK)不相关,则引入2个联接表。不要试图把一个圆钉子放进一个方孔里,也不要试图用扳机来弥补它。;) |
![]() |
2
1
如果我理解正确,您有三个表,结构如下:
您要做的是定义表,这样您就可以在表之间级联更新和删除。因为怎样
你能用这个定义做的是从
|
![]() |
3
0
我不知道你用的是哪种数据库管理系统,但我不知道有哪种系统可以接受多个家长。您可以在表3上定义一个索引(只是为了更快),并在应用程序中实现级联删除。 |
![]() |
ybou · 需要帮助从SQL 2005查询中删除过时的=*连接运算符 7 年前 |
![]() |
Robert · 将多个分隔符分隔的字段视为不同的行 8 年前 |
![]() |
hud · 执行存储过程会导致错误 8 年前 |
![]() |
Gonzalo · 如何将存储过程的结果插入到新表中? 9 年前 |