我有 2 个相关模型,model_A 和 model_B
他们之间是1:n的关系
意味着 model_A 中的一条记录可以在 model_B 中拥有多条相关记录
我希望 model_A 有一个生成(和存储)的列
这样生成的列应该是布尔值
如果 model_B 中有 1 条或更多相关记录,则应设置为 true
如果 model_B 中有 0 条相关记录,则应该为 false
如何编写表达式来生成这样的布尔值?
我有 2 个相关模型,model_A 和 model_B
他们之间是1:n的关系
意味着 model_A 中的一条记录可以在 model_B 中拥有多条相关记录
我希望 model_A 有一个生成(和存储)的列
这样生成的列应该是布尔值
如果 model_B 中有 1 条或更多相关记录,则应设置为 true
如果 model_B 中有 0 条相关记录,则应该为 false
如何编写表达式来生成这样的布尔值?
您需要一个触发器来
model_b
更新 中的冗余列model_a
。不要使用
boolean
,因为这会强制您对每次数据修改的子行进行计数。这种计数不仅需要一些努力,而且还会引入竞争条件:如果两个并发事务删除一行,则没有一个事务可以看到另一个事务的影响,并且最终可能会得到错误的结果。使用
integer
orbigint
列:示范: