|
|
|
Многние ко многим + иерархия
|
|||
|---|---|---|---|
|
#18+
День добрый! И сразу к делу. Имеется: 1. users [id, parent, ...] 2. devices [id, name, ...] 3. users_devices [user_id, device_id, visible, name, ...] Есть два типа юзеров: 1. мастер, 2. пользователь. У мастера может быть куча пользователей. У каждого юзера есть свои устройства. Кроме того, мастер может давать видеть свои устройства своим же подопечным юзерам, то бишь пользователям. А они, в свою очередь могут меня имя устройства для себя и только. Вопрос первый: правильно сделал таблицы или нет. И второй вопрос: мне нужно 2 запроса. Первый для мастера: ид устройства, список имен юзеров, для которых разрешено видеть это устройство, имя... Второй для юзера: ид устройства, имя мастера, имя, которое он может изменить для себя в таблице users_devices Надеюсь, понятно объяснил. Спасибо за внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2014, 11:19 |
|
||
|
Многние ко многим + иерархия
|
|||
|---|---|---|---|
|
#18+
Поскольку ни мастера не могут давать права другим мастерам, ни пользователи не могут давать права другим пользователям, то о иерархии речи быть не может. Все просто скучно линейно и банально. Связь Мастер - пользователи 1:M или М:M? Связь Пользователь устройство 1:M или М:M? Dmitriy Nikolaevich правильно сделал таблицы или нет.Я бы засунул мастеров в отдельную таблицу Dmitriy Nikolaevich И второй вопрос: мне нужно 2 запроса.Два запроса два ответа 1 Запросы без структуры не имеют смысла. 2 Да и со структурой я лучше буду критиковать ваши усилия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2014, 17:37 |
|
||
|
Многние ко многим + иерархия
|
|||
|---|---|---|---|
|
#18+
SERG1257, у автора темы в описании нет условий, что мастер это нечто, требующее выделения в отдельную сущность. Запросто может возникнуть ситуация, что мастер может быть пользователем другого мастера (связка мастер-старший мастер довольно распространена на производстве). Думается мне, что с мастерами тут всё просто: это те пользователи, id которых хотя бы один раз записан в поле parent. Потому думаю, что таблицы трогать не надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2014, 07:31 |
|
||
|
Многние ко многим + иерархия
|
|||
|---|---|---|---|
|
#18+
Dmitriy Nikolaevich, непонятен смысл поля name в таблице привязки устройств к пользователям (users_devices). Может его оттуда убрать надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2014, 07:49 |
|
||
|
Многние ко многим + иерархия
|
|||
|---|---|---|---|
|
#18+
понял смысл поля name в таблице users_devices: если в таблице devices есь запись id=1, name='Штангенциркуль', то в таблице users_devices пользователь может написать, что device_id=1 называется name='Мой штанген' или что-то типа 'Молоток'. Надо отметить, что это гениальная фишка! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2014, 08:33 |
|
||
|
Многние ко многим + иерархия
|
|||
|---|---|---|---|
|
#18+
хотя конечно, если пользователь можент иметь несколько мастеров, то таблички менять надо. Из таблицы users убрать parent (ну и конкчно надо бы хотя бы для приличия добавить name, ибо думается мне неудобно постоянно держать в голове, что Петя у нас является "пользователь №1", а Вася, это на самом деле не Вася, а "пользователь №2" Ну и добавить табличку users_links где указывать каких мастеров имеет пользователь ПОлучается четыре таблицы: 1. users [id, name] 2. users_links [user_id, master_id] 3. devices [id, name] 4. users_devices [user_id, device_id, visible, name] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2014, 08:51 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38601187&tid=1540938]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
159ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 487ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...