小编Pat*_*ase的帖子

是否存在mysql"multitable"触发器 - EG是仅在所有表更新完成后触发的触发器?

粗略的架构 几个表有一个触发器,可以在update/insert上生成行的json对象表示.EG {"email": ..., "relations: N" } //<--an email.json column并将其存储在json列中

关系只是一个数字联系在一起(让我知道是否有一个词),它允许我将多个名称,电子邮件,电话,家庭联系在一起 -

例如 the touchRelation.json column

{ 
"emails": [ {"email": 1@a.com },{"email:  2@a.com"},{"email:  N@a.com"}],
"teles" : [ {"tele" : ... },{"tele : ...."},{"tele : ...."}],
"Names" : [ {"Name" : ... },{"Name : ...."},{"Name : ...."}],
"Homes" : [ {"Home" : ... },{"Home : ...."},{"Home : ...."}],
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是:1)更新touchRelations.json是浪费和低效的每一个其他表中的一个获取数据CRUD,特别是如果一次更新几个表

2)我可能无法依赖开发人员在每次查询后调用update_Relations_json().

是否有一种简单的方法可以判断一个或多个表是否已更新,并且只有在所有表的所有更新完成后才重新生成relations.json?


一种可能的解决方案是创建一个"挂起的更新"表,该表将信息存储在队列中,并逐个插入/更新队列表中的数据到存储表,然后调用更新函数,但我确定这不是这是最好的选择.

另一个选择是在db中创建一个JSON解析器,读取完整的json关系(上面的大关系),更新表然后构建json对象,但这似乎是对数据库的不良使用.

mysql sql json

5
推荐指数
1
解决办法
448
查看次数

标签 统计

json ×1

mysql ×1

sql ×1