SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.06.2017 09:14:55

kirillgolodaev
Участник
Зарегистрирован: 05.06.2017
Сообщений: 2

Как организовать структуру пользователей?

Здравствуйте, как организовать структуру пользователей?

Есть 3 вида пользователей: админ, оператор и клиент.
У каждого типа пользователей, разные данные (поля).
За каждым пользователем закреплен свой оператор или наоборот, у оператора есть свои клиенты.

Думаю сделать так:
1. таблица пользователей "user" (id, login, password, name и т.д.)
2. таблица профиль клиента "client_profile" (id, user_id и т.д.)
3. таблица профиль оператора "operator_profile" (id, user_id и т.д.)

А вот как сделать связь оперетар-клиент?

Сделать "один ко многим" или в таблицу "user" добавить "parent_id"?

Как сделать правильно?

Если таблицу профиля клиента переименовать в "client", теперь не профиль, а отдельная сущность.

Есть таблица "заявки", в ней записывать id из таблицы "user", или "id" из таблицы client?

Неактивен

 

#2 05.06.2017 09:39:22

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Как организовать структуру пользователей?

Насколько разные поля у трех типов пользователей? Сколько совпадающих, сколько несовпадаюющих?
Если сильно разные, то проще и логичнее три разных таблички для них, если слегка разные, то можно  в одну табличку их положить, а "разницу" положить в json-поле extended_info ( см. http://sqlinfo.ru/articles/info/20.html).

>За каждым пользователем закреплен свой оператор или наоборот, у оператора есть свои клиенты.

Не совсем понятно, у отдельного взятого клиента может быть несколько операторов? В то же время у отдельного взятого оператора может быть множество клиентов? Если так, то тут напрашивается
хрестоматийное решение - многие ко многим, то есть сводная табличка rel_operator_client, которая содержит два поля - client_id и operator_id.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson