|
|
|
Как можно еще переписать вложенный селект для MySQL 4.0?
|
|||
|---|---|---|---|
|
#18+
Для сайта реализована система привелигий пользователей. Также одно из бизнес-требований к разрабатываемой системе является ограничение доступа пользователей к модулям. Связь (ограничение) осуществляется через "роль" (отношение "многие-ко-многим"). Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. За управление ограничениями к модулям отвечает скрипт module_access.php, который в качестве параметра получает значение ИД_роли (role_id). По заданному коду role_id администратор выставляет доступ (поле module_access.access_status - 0 | 1) для данной роли к модулям. В случае если в систему добавлен новый модуль (-ли), то сценарий module_access.php должен предварительно автоматически добавить записи о новых модулях в таблицу module_access для текущей учетной записи с номером role_id. Код: plaintext Код: plaintext Код: plaintext Код: plaintext 1. 2. 3. 4. 5. Естественно под MySQL 4.1 данный запрос работал. В связи с переходом на другой хостинг, на котором установлен 4.0, запрос не работает. Поэтому надо переписать вложенный SELECT с учетом параметра $role_id. Один из вариантов - это создать временную таблицу, в которую загрузить все ИД модулей из таблицы module_access для указанной роли $role_id, а затем выполнить LEFT JOIN для поиска недостающих записей (модулей). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Есть ли еще другие варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 12:56:57 |
|
||
|
Как можно еще переписать вложенный селект для MySQL 4.0?
|
|||
|---|---|---|---|
|
#18+
А такой запрос не спасет "отца русской демократии" : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Конечно лишний проход по таблице, зато одним запросом... Я так понимаю таблицы эти не очень большие будут так, что вполне терпимо. Особенно если индекс по role_id добавить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2005, 03:01:45 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=651&tid=1853751]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 348ms |

| 0 / 0 |
