Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2018, 01:47   #1
Rassamaha78
Новичок
Джуниор
 
Регистрация: 24.04.2011
Сообщений: 3
По умолчанию Проверка актуальных данных о пользователе.

Здравствуйте. Разрабатываю локальный веб сервер,с авторизацией и разделением прав пользователей, после авторизации в сессии пользователя устанавливается флаг успешной авторизации и тянутся из БД ряд других переменных для данного пользователя. Но как быть, если например во время работы пользователя в системе, админ с другого компа удаляет этого пользователя, или меняет его права ? На данный момент при удалении пользователя все данные о нём удаляются из БД, включая и данные во всех связанных таблицах.
Вариантов решения вижу несколько:
1. Проверять авторизацию (с проверкой логина/пароля), его права и другие данные о пользователе при каждом его действии. Минус такого подхода вижу в увеличении количества запросов в БД.
2. При удалении пользователя, или других действиях с ним пробегаться в цикле по всем сессиям, и, если нужный пользователь в данный момент "на сервере" убивать его сессию или обновлять актуальные данные из БД. Вариант вроде бы не плохой, к тому же сервер локальный, и число пользователей относительно не велико.
3. Не удалять пользователя из БД, а помечать его флагом удаления, и при выполнении всех операций запрашивать только состояние этого флага в БД, и если он установлен, тогда ...переходить к п.2.
4. А как вы поступили бы в данном случае ? может есть какие то общепринятые способы ?

P.S. Я не являюсь конкретно Веб-разработчиком, и опыта в разработке многопользовательских систем не так много.
Rassamaha78 вне форума Ответить с цитированием
Старый 30.10.2018, 01:52   #2
Rassamaha78
Новичок
Джуниор
 
Регистрация: 24.04.2011
Сообщений: 3
По умолчанию

Пока писал сообщение, придумал ещё один, и наверное наилучший вариант:
А что если выполнять п.2 только при смене "настроек" пользователя админом ?
Rassamaha78 вне форума Ответить с цитированием
Старый 30.10.2018, 09:34   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

более правильно - п 3. + 2 при смене
удалять физически не очень хорошая идея...
ADSoft вне форума Ответить с цитированием
Старый 30.10.2018, 11:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

удалять полностью - имхо, не вариант для нормальной системы.
выставляйте признак удаления и в запросе достаточно добавить проверку
and is_deleted=0
и всё - удалённые пользователи не отображаются в запросах.

по поводу изменения. При каждом обращении пользователя к БД первым должно идти запрос на проверку пользователя - есть ли такой в БД и какие у него права. Вот в этой процедуре и обновятся права (если их кто-то где-то изменил) и запрос будет с учётом признака удаления записи. Т.е. пользователь, которого удалили, при попытке перейти на другую страницу или обновить текущую получит отлуп - "Такого пользователя нет".
Насчёт увеличения количества запросов не переживайте. Современные БД легко выдерживают сотни тысяч запросов в секунду.

p.s. всё высказанное является исключительно моим личным мнением.
прошу относиться к моим словам с долей здорового скептицизма
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка актуальных данных с удалением оригинальной и дублирующей записи Dima36668 Microsoft Office Excel 9 03.06.2013 23:59
Получить данные о пользователе и о времени PinkPink C/C++ Сетевое программирование 1 03.04.2013 21:17
РНР информация о пользователе gunsoy PHP 4 31.05.2011 19:15
Сохранение данных о пользователе DEFENEK Помощь студентам 0 08.05.2009 19:07
Слишком много актуальных параметров... extrimportal Общие вопросы Delphi 7 22.04.2009 22:41