MySQL从不同的表计算字段

时间:2019-12-10 17:13:50

标签: mysql

这是我要解决的问题的简化版本:

Table1: users
  id int(11)
  username varchar(30)

Table2: hobbies
  id int(11)
  user_id int(11)
  description varchar(100)

Table3: feedback
  id int(11)
  user_id int(11)
  description varchar(100)

我成功地基于生成并存储下表的函数创建了一个视图:

Table4: user_rank
    id int(11)
    user_id
    hobby int(3)
    feedback int(3)

存储如下数据:

id .         user_id .         hobby         feedback

54 .         20 .              30 .          40
67 .         87 .              0 .           0

因此,爱好和反馈是计算得出的字段。如果用户已经完成了兴趣爱好和反馈会话,那么他会得到一个分数,否则该值为零。我的问题是基于视图的方法太慢了,因为我的数据库包含成千上万的用户。还有另一种方法可以实现我的目标吗?

在收到一些反馈后更新:

您好,谢谢您的答复。我之前已经发布了详细的视图。您可以在这里看到它:

MySQL view populated using functios is too slow. Is my design faulty?

由于没有人回答替代方案,我问了一个直接的问题。您将如何创建一个永久表来存储用户的分数(计算得出的字段形成不同的表)而又不不断调用和更新数据?考虑到数据库中存储了成千上万的用户,我正在根据本文顶部给出的表格的简化描述寻求解决方案。

0 个答案:

没有答案