Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как организовать структуру пользователей?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, как организовать структуру пользователей? Есть 3 вида пользователей: админ, оператор и клиент. У каждого типа пользователей, разные данные (поля). За каждым пользователем закреплен свой оператор или наоборот, у оператора есть свои клиенты. Думаю сделать так: 1. таблица пользователей "user" (id, login, password, name и т.д.) 2. таблица профиль клиента "client_profile" (id, user_id и т.д.) 3. таблица профиль оператора "operator_profile" (id, user_id и т.д.) А вот как сделать связь оперетар-клиент? Сделать "один ко многим" или в таблицу "user" добавить "parent_id"? Как сделать правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 06:33 |
|
||
|
Как организовать структуру пользователей?
|
|||
|---|---|---|---|
|
#18+
Если таблицу профиля клиента переименовать в "client", теперь не профиль, а отдельная сущность. Есть таблица "заявки", в ней записывать id из таблицы "user", или "id" из таблицы client? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 08:43 |
|
||
|
Как организовать структуру пользователей?
|
|||
|---|---|---|---|
|
#18+
Ерунда денормализованная. Есть пользователи. Есть роли. Есть отношение пользователь-роль. То, что "у клиента есть оператор", говорит лишь о том, что у роли "клиент" есть компонент "оператор", вследствие чего у экземпляра "пользователь", имеющего значение атрибута "роль", равного "клиент", будет атрибут "идентификатор оператора". Реализовывать подобную схему (шаблон роли -> атрибуты экземпляра пользователя) удобнее всего как EAV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 11:32 |
|
||
|
Как организовать структуру пользователей?
|
|||
|---|---|---|---|
|
#18+
Akina, RBAC реализован. EAV не подойдет Мне не нравиться данный подход, вот я и обращаюсь за советом. Нужно отдельная таблица для клиентов, т.к. будут: балансы, статусы и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 12:50 |
|
||
|
Как организовать структуру пользователей?
|
|||
|---|---|---|---|
|
#18+
Кирилл ГолодаеаRBAC реализован.Это понятно. Кирилл ГолодаеаEAV не подойдетПричина? Кирилл ГолодаеаМне не нравиться данный подходКакой именно? EAV? Кирилл ГолодаеаНужно отдельная таблица для клиентовИз физики бизнес-процесса это никак не проистекает. Но хотите так - делайте так... только тогда настоятельно советую сделать клиента отдельной сущностью (и опера, и админа - ещё 2 отдельных), а с сущностью "человек" попрощаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 15:53 |
|
||
|
Как организовать структуру пользователей?
|
|||
|---|---|---|---|
|
#18+
Akina, "Мне не нравиться данный подход" мой с сущностями. Делать 3 отдельных сущности, считаю неправильно "Ерунда денормализованная" К примеру, есть модули "shop", "blog", "form" и у каждого свой профиль пользователя, но при этом, есть общая таблица пользователей. Делают так: заводят таблицу профиля "forum_user" и добавляют нужные поля для форума. Вы считаете данный подход неправильным? В моём случаи, можно переместить все поля для оператора и клиента в таблицу "user". Важно, у клиента должно быть поле "баланс" с типом "decimal". Вот и думаю, как поступить, все в одну таблицу или делать профиля, ни тот ни другой подход не нравится. Как поступили бы Вы, с EAV и без? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 06:48 |
|
||
|
Как организовать структуру пользователей?
|
|||
|---|---|---|---|
|
#18+
Кирилл ГолодаеаДелают так: заводят таблицу профиля "forum_user" и добавляют нужные поля для форума.Не всегда. Во всяком случае не так категорично. Вариант первый - разреженная таблица. Общая таблица пользователей со всеми полями, для любой роли, в полях для отсутствующей роли Null. Не худший вариант, но сложно писАть констрейнты на целостность. Вариант второй - EAV. По сути совершенно то же самое, да и проблемы те же, только место экономится. Вариант третий - базовая таблица общих атрибутов и частные таблицы атрибутов для каждой роли. Имхо наиболее употребительный вариант. Сбалансированный. И в Вашем случае тоже (хотя и не так удобен, как EAV). И ещё я бы его дополнил слоем хранимых процедур, полностью отделив юзера от данных и вынеся логику на сервер. Это заодно позволит сделать роль не сущностью, а атрибутом, отдав всю шаблонизацию и контроль процедурам. Ну и упростит работу конечного пользователя - ценой усложнения разработки, но она-то как раз одноразовая. Дело Ваше, думайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 07:55 |
|
||
|
Как организовать структуру пользователей?
|
|||
|---|---|---|---|
|
#18+
Мнение чайника Кирилл ГолодаеаДумаю сделать так: 1. таблица пользователей "user" (id, login, password, name и т.д.) 2. таблица профиль клиента "client_profile" (id, user_id и т.д.) 3. таблица профиль оператора "operator_profile" (id, user_id и т.д.) Убрать id из 2й и 3й таблиц. Кирилл ГолодаеаА вот как сделать связь оперетар-клиент? Сделать "один ко многим" или в таблицу "user" добавить "parent_id"? Варианты: 1. Через промежуточную таблицу клиент-оператора сделать отношение многие-ко-многим (если вдруг появится необходимость или потребуется иметь историю отношений клиент-оператор) 2. Добавить "parent_id" не в "user", а в "client_profile" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 06:43 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1830629]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 141ms |

| 0 / 0 |
