我有两个称为任务和用户的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 |
+------------+---------+---------+
因此,仅列出的任务将显示给特定用户。
问题在于,这似乎不是有效的解决方案。如何在这种情况下以有效的方式设计表。如果不是,还有其他方法吗?