Как организовать базу с тремя таблицами и связями многие ко многим?
База для discord бота. В дискорде есть сервера (таблица guild), пользователи (user), роли пользователей на сервере (role).
У сервера может быть много пользователей и ролей. Пользователь может состоять на многих серверах и иметь много ролей. Не могу придумать схему базы. Пока остановился на двух вариантах.
Первый кажется проще:
tukreb, в первом варианте роль хранится в таблице role, а связь роли с сервером в guild_user_role. Во втором - роль хранится так же, а связь в guild_role.
Вторая схема выглядит вообще нежизнеспособной.
Например, есть сервера 1,2; пользователи 1, 2; роли 1, 2. У пользователя 1 роль 1 на сервере 1 и роль 2 на сервере 2, а у пользователя 2 роль 2 на сервере 1 и роль 1 на сервере 2.
Соответственно, guid_user: 1-1; 1-2; 2-1; 2-2. user_role: 1-1; 1-2; 2-1; 2-2. guid_role: 1-1; 1-2; 2-1; 2-2. Оба пользователя будут иметь одинаковые роли на обоих серверах.