好吧,我为我的公司创建了一个任务管理器。用户可以将任务分配给多个其他用户。所以我有两种实现方法。将多个用户分配给“任务”
这是我的任务选项一个表(至少在这个讨论是很重要的列):
----------------------------------------------
| id | assigned_to | assigned_from |
---------------------------------------------
| 1 | 1,3,6 | 4 |
--------------------------------------------
| 2 | 1,4 | 2 |
---------------------------------------------
所以我在这里非常简单,只是逗号分配给这个特殊的任务
每个USER_ID分离选项2:
----------------------------------------------------------
| id | task_id | assigned_to | assigned_from |
------------------------------------------------------------
| 1 | 335901 | 1 | 4 |
-----------------------------------------------------------
| 2 | 335901 | 3 | 4 |
-----------------------------------------------------------
| 3 | 335901 | 6 | 4 |
-----------------------------------------------------------
| 4 | 564520 | 1 | 2 |
-----------------------------------------------------------
| 4 | 564520 | 4 | 2 |
-----------------------------------------------------------
因此,大家可以看到,而不是把assiged_to这里是在这里我只是创建一个任务ID是一个随机数和日我可以通过'task_id'进行分组。这是我目前制作它的方式,但由于某种原因,它感觉将来可能会把我搞砸(不是那种选择不会给我同样的感觉)。所以我的问题是你们推荐哪种方式,或者是否有更好的方法可以做到这一点?
选择2是正确的道路要走。 SQL的目的不是将事物列表放入逗号分隔的字符串中。它旨在将事物清单放入表格中。 – 2014-10-04 16:18:47
@GordonLinoff谢谢 – Rodrigo 2014-10-04 16:19:35
选项3:为TaskAssignees使用单独的表格和用于TaskAssignees的单独表格,其中第二个表格将作为“Tasks”和“Users”表格之间的枢纽。 – 2014-10-05 10:38:19