Связи в базе данных (mysql)

258
24 апреля 2022, 03:10

Пытаюсь спроектировать базу данных (mysql) для будущего чата - мессенджера. Вот получившаяся на данный момент модель:

Я новичок в базах данных, и у меня появляется 2 вопроса:

  1. Я связываю диалог и его пользователей через dialogusers. Достаточно ли добавить в dialogusers связь с dialogId, или должна быть обратная связь? Правильный ли это ход вообще создавать связь таким образом, или лучше сделать это напрямую? Когда связь onetoone, надо ли делать 2 переменные в сущности для двусторонней связи?
  2. Связь "Пользователь - созданные сообщения" - у меня выходит manytoone, а должно быть onetomany. Workbench никак не хочет инвертировать эту связь, не пойму почему!

UPD:

Необходимые связи:

У каждого чата (dialog) есть 1 список пользователей (dialogusers). Связь OneToOne.

У чата (dialog) может быть создатель (user). Связь OneToOne.

Список пользователей (dialogusers) содержит, соответственно, самих пользователей(user), подключенных к диалогу. Он может быть пустым. Связь OneToMany

Каждый пользователь (user) имеет 1 профиль (userprofile). Связь OneToOne.

Каждое сообщение (message) имеет одного отправителя (user). Связь OneToOne.

Каждое сообщение (message) имеет один чат (dialog), уда оно, собственно, отправлено. Связь OneToOne.

Вышеназванные связи реализовать, вроде как, удалось.

Со следующими связями есть проблемы в реализации и вообще в их необходимости:

У пользователя (user) могут быть отправленные сообщения (message). Связь OneToMany. При реализации выходит обратная связь - ManyToOne.

У списка пользователей (dialogUsers) стоит ссылка на чат этого списка (dialog). Я не знаю, нужна ли мне эта связь впирнципе и как я ее буду использовать.

READ ALSO
Не могу запустить mysql сервер

Не могу запустить mysql сервер

Не могу запустить mysql командой

179
Как получить json через post в slim и добавить в базу данных?

Как получить json через post в slim и добавить в базу данных?

Необходимо получить post запрос в формате json и записать в базу данныхНо в итоге в $id при выводе либо null либо ничего

223
Как прибавлять каждый день определенное число через php в mysql

Как прибавлять каждый день определенное число через php в mysql

Всем приветМне нужно что бы ежедневно в бд прибавлялась число

244