在MySQL中减少MXN表搜索的最佳方法是什么

时间:2019-06-07 14:52:56

标签: mysql

我有两个称为任务和用户的MySQL表。我只想不想在用户面板中显示用户已经完成的任务。假设任务表有大约1000个条目,并且大约有50000个用户。用户和任务也不断增加。

我能想到的一个解决方案是,首先创建一个任务x用户规模的单独表。 例如: 用户表

+---------+--------+-------+
| user_id | fname  | lname |
+---------+--------+-------+
|       1 |   John | Smith |
|       2 |  Steve | Mark  |
+---------+--------+-------+

任务表

+---------+-------------+---------------+
| task_id |    task     | task_duration |
+---------+-------------+---------------+
|       1 |   Do task 1 | 1 hour        |
|       2 |   Do task 2 | 1 hour        |
+---------+-------------+---------------+

创建一个名为display的单独表

+------------+---------+---------+
| display_id | task_id | user_id |
+------------+---------+---------+
|          1 |       1 |       1 |
|          2 |       1 |       2 |
|          3 |       2 |       1 |
|          4 |       2 |       2 |
+------------+---------+---------+

因此,仅列出的任务将显示给特定用户。

问题在于,这似乎不是有效的解决方案。如何在这种情况下以有效的方式设计表。如果不是,还有其他方法吗?

0 个答案:

没有答案