sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux

Нужно ли поле ID пользователя в обеих таблицах?

Что бы уловить суть вопроса ситуация такова.
- есть пользователи
- есть проекты созданные пользователями
- есть задания для проектов упомянутых выше
----------------
- users
--- id
- projects
--- id
--- id_user
--- title

- tasks
--- id
--- id_project
--- message
--- id_user (?)

--------------------------
Ранее работая с чужими кодами (в итоге перенял себе) я замечал что что везде где пользователь что то создаёт там присутствует поле id_user, и это понятно, но если есть промежуточная таблица с этим полем (в моём случае projects) то в tasks (что бы было всё по феншую) это поле уже добавлять не нужно получается (или это уже не феншуй?)
При выборке сtasks у нас есть id_project, по нему мы можем узнать в таблице projects наш заветный id_user.
tasks.id_project связан c projects.id
projects.id_user связан с users.id
Вроде всё элементарно, но зачем тогда создают id_user в обеих таблицах, всё равно данные в этих полях будут одинаковы (в id_user), а если разные то это уже есть ошибки в приложении.
  • Вопрос задан
  • 214 просмотров
Решения вопроса 2
@res2001
Developer, ex-admin
По феншую не нужно.
Если заведете user_id в задачах, то появляется не нулевая вероятность рассинхронизации project.user_id и tasks.user_id. И нужно будет этот момент как-то отлавливать.
Ответ написан
@alex_ak1
Это имеет смысл, если в проекте учавствуют несколько пользователей, и каждый из них занят одной задачей. Если в одном проекте только один пользователь, то не надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы