Назначение нескольких пользователей для «задачи»

Итак, я создаю менеджер задач для моей компании. Пользователь может назначить назначение задачи нескольким другим пользователям. Так что у меня есть 2 способа реализации этого.

Это моя таблица задач для первого варианта (по крайней мере, столбцы, которые важны в этом обсуждении):

----------------------------------------------
|   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 is, я просто создаю идентификатор задачи, который является случайным числом, и затем я могу groupBy ‘task_id’. Это в настоящее время они так, как я его построил, но по какой-то причине мне кажется, что это может обернуться мной в будущем (не тот вариант, который не дает мне того же чувства). Итак, мой вопрос, какой путь вы, ребята, рекомендуете, или, может быть, есть другой лучший способ, которым я мог бы сделать это?

1

Решение

Вариант 2 — лучшее решение, так как вы можете точно работать с таблицей. Вы можете, например, создать другую таблицу Tasks с

Task_id    |  Task_name   |  Budget  | ...

Или таблица с идентификаторами пользователей для assigned_to а также assigned_from, Все эти таблицы могут быть объединены, если вы используете 2-й вариант.

Кстати, это правильно форма нормализации

1

Другие решения

Вы можете использовать вариант 2 и продолжить нормализацию, если задачи всегда назначаются одним и тем же лицом.

Tasks Таблица:

task_id   |   assigned_from
1         |   4
2         |   2

Assignees таблица не должна иметь assigned_from так как это всегда то же самое для этого task_id:

id   |   task_id   |   assigned_to
1    |   1         |   1
2    |   1         |   3
3    |   1         |   6
4    |   2         |   1
5    |   2         |   4
0