我有3张表有多对多的关系:
t1
ID(PK) NAME VISIBLE
1 John 1
2 Sam 1
3 Kurt 0
---------------------------
t2
ID(PK) NAME VISIBLE
1 Product1 1
2 Product2 0
---------------------------
t3
IDt1(FK) IDt2(FK) VISIBLE
1 1 1
2 1 1
3 2 0
所以,我需要的是:
当我在t1中更改可见时,visible
中的t2
列也会更改,如果它们已连接到t3
表中。
例如:当我在Kurt
中设置visible = 0
(t1
)时,product2应自动设置Product2
(visible = 0
),因为它们已连接在一起t3
表。
在设计数据库时如何使用FK进行此操作?
还是从根本上说错了?
答案 0 :(得分:1)
使用FK你不能那样做。使用FK的目的不同,它有助于检查数据与PK的关系或依赖性。删除PK和从属FK数据时很有用。
也许您可以使用表上的触发器来实现此设计,但是,这不是在数据库级别上执行此操作的正确方法。它会产生性能问题。相反,您应该以编程方式执行此操作。