1

У меня есть следующая база данных SQL Server с одной таблицей.Пользователи, группы, роли, члены members для SQL Server базы данных SQL Server

---------------- 
|Users   | 
---------------- 
| UserId PK | 
|    | 
| Other fields | 
---------------- 

Мне нужно добавить несколько таблиц в ней, которая не является проблемой, но это цель:

---------------- ---------------- ---------------- ---------------- 
|Users   | |Roles   | | Teams  | | Groups  | 
---------------- ---------------- ---------------- ---------------- 
| UserId PK | | RoleId PK | | TeamId PK | | GroupId PK | 
|    | |    | |    | |    | 
| Other fields | | Other fields | | Other fields | | Other fields | 
---------------- ---------------- ---------------- ---------------- 

Что мне нужно для достижения заключается в следующем:

  • У меня есть X количество пользователей

    • User1
    • Пользователь2
    • UserX
  • У меня есть 3 роли только для всех пользователей, чтобы использовать во всех команд и групп

    • администратора
    • Член
    • Публичные
  • Один Пользователь может создать X количество команд

    • TEAM1
    • team2
    • TeamX
  • Один пользователь может создать X количество групп

    • Group1
    • Group2
    • GroupX
  • Группа и Команды могут иметь пользователь, назначенные им с различными ролями (Admin, члены, посетители)

  • Один пользователя могут принадлежать к одной или многим команде или группам

  • One пользователь может принадлежать одной или нескольким ролям

У меня есть некоторая трудность понимания отношения между этими таблицами.

Вот что мне удалось добиться на основе ответа от @Robertas Valeika.

http://i58.tinypic.com/3588h0i.png

ответ

2

Вам нужно больше 3 таблицы. ПользователиРоли ПользователиРоляГруппы ПользователиРоляTeams.

Отношения:

UsersRoles - UsersRolesGroups, Группы - UsersRolesGroups

UsersRoles - UsersRolesTeams, команды - UsersRolesTeams

Пользователи - UsersRoles, Роли - UsersRoles.

И добавьте FK пользователям в группах и таблицах групп, чтобы определить создателя группы и команды.

+0

Благодарим вас за комментарий. Мне удалось это сделать. http://i57.tinypic.com/2r2c51i.png Можете ли вы проверить, все ли в порядке, отношения (1 .. *, * .. * ... и т. д.) –

+0

Каждая таблица должна иметь один столбец в качестве ПК (сделать дополнительно один при необходимости). И отношения Команды - UserRolesTeams (от одного до многих) одинаковы с группами и UserRoles - UserRolesTeams (от одного до многих). И я не вижу колонку создателя в командах и группах. –

+0

Я сделал окончательную версию: http://i58.tinypic.com/3588h0i.png –

Смежные вопросы