如何改变“多对多”关系中的变量?

时间:2017-10-17 18:04:19

标签: php mysql sql

我有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 = 0t1)时,product2应自动设置Product2visible = 0),因为它们已连接在一起t3表。

在设计数据库时如何使用FK进行此操作?

还是从根本上说错了?

1 个答案:

答案 0 :(得分:1)

使用FK你不能那样做。使用FK的目的不同,它有助于检查数据与PK的关系或依赖性。删除PK和从属FK数据时很有用。

也许您可以使用表上的触发器来实现此设计,但是,这不是在数据库级别上执行此操作的正确方法。它会产生性能问题。相反,您应该以编程方式执行此操作。