我正在构建一个站点,该站点根据用户喜欢或不喜欢站点上的帖子来确定用户之间的相关值。为此,我正在使用大量物化视图(在更改其他表时使用 SQL 触发器更新表)来设置我的数据库。
我要更新的表之一是存储有关用户之间关系的信息的表,该表基于存储用户提供的比率(对帖子的喜欢和不喜欢)的表。
在rates
表中,我有列user_id
、post_id
和liked
(如果用户喜欢该帖子,则为 1,如果用户不喜欢该帖子,则为 -1。)
在用户-用户相关性表中,我计划使用user_id_a
、user_id_b
、agreed
、disagreed
和列total
。agreed
他们评分相同的帖子数量 在哪里disagreed
,他们评分相反的帖子数量在哪里,以及total
他们都评分过的帖子总数在哪里。
我想在表上设置一个触发器,rates
以便在向其中添加一行时,它将:
- 将不存在的所有必要的用户-用户相关行添加到用户-用户相关表中
- 更新用户-用户相关表的所有相关行中的
agreed
、disageed
和列total
编辑:我的问题是如何编写项目符号中列出的查询。我知道如何编写触发器,但在这种情况下,我只是不知道如何让他查询进入触发器内部。
rates
当更新或删除行时,我还需要编写类似的触发器。
我正在使用 MySQL 数据库。