好吧,我爲我的公司創建了一個任務管理器。用戶可以將任務分配給多個其他用戶。所以我有兩種實現方法。將多個用戶分配給「任務」
這是我的任務選項一個表(至少在這個討論是很重要的列):
----------------------------------------------
| 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