Как обычно хранят данные зарегистрированных пользователей?
Друзья!
(Вроде проверял, такой статьи не нашел)
Как нужно хранить данные зарегистрированных пользователей сайта?
(В моем случае - это SQL-база данных)
И небольшое уточнение, каждый пользователь, может накапливать определенные личные данные (т.е. не тупо зарегистрировался и ходишь под логином своим, а Зарегистрировался и каждый пользователь свои материалы сохраняет под своим профилем..)
Вот как я рассуждал:
в вашем проекте, например, когда новый пользователь регистрируется, то для него что обычно лучше создавать:
Способ 1 Необходимые SQL-таблицы в УЖЕ СУЩЕСТВУЮЩЕЙ ОБЩЕЙ базе данных - с соответствующими правами для редактирования этих самых таблиц.
или
Способ 2 вообще СОЗДАВАТЬ ОТДЕЛЬНУЮ SQL-БАЗУ ДАННЫХ на КАЖДОГО пользователя, типа
base_user_id_001
base_user_id_002
и тд..
Способ 3 Или они все (пользователи) просто должны пользоваться УЖЕ СУЩЕСТВУЮЩЕЙ ОБЩЕЙ базой данных и УЖЕ СУЩЕСТВУЮЩИМИ SQL - таблицами и там как то осуществляется разграничение ПОЛЬЗОВАТЕЛЯ от ПОЛЬЗОВАТЕЛЯ?
Обычно в одной таблице хранят на всех пользователей, отдельно под каждого юзера таблицы новые не создают, просто в каждой записи хранят принадлежность к определённому пользователю.
Пользователям же не нужен напрямую доступ к БД.
Всего два типа объектов уровня:
Юзеры/Сервисы и Права (для них)
Сервис (это сервис-пользователь; внутри системы) знает юзера (пользователя сервиса) только по id, если не разрешён явный доступ для этого сервиса к данным юзера через права сервиса.
Верхний уровень - управляет доступом к нижним.
The end.
Т.е. тоже не рекомендуете плодить персональные Таблицы для каждого отдельного пользователя..
Идентифицировать юзверя по ID...
Все бы ничего, но тогда будет неразбериха с ID-записями для остальных пользователей.. Т.Е.будет сквозная ID-нумерация записей (созданных пользователями) - для всех пользователей.. И если какой нибудь пользователь захочет восстановить свои записи, скажем 5 дневной давности - из бэкапа - то это произойдет для всех юзеров) (поскольку таблица то одна на всех) - а это же просто жесть..
Алексей, юзеры всех сервисов - только в одной единственной таблице на самом верхнем уровне. Сервисы - не создают пользователей (и вообще не имеют прямого доступа к хранилищу учётных записей!).
Они только могут передать запрос на попытку создания системе. А уже она - проверит права сервиса и решит: разрешать ему это действие или нет.
Т.е. тоже не рекомендуете плодить персональные Таблицы для каждого отдельного пользователя..
Данные учётной записи - это хранилище учёток (на самом верхнем уровне и с самыми важными данными о пользователе без привязки хранимых данных к конкретному сервису).
Данные учётки, используемые в конкретном сервисе - хранилище пользовательских данных внутри этого сервиса. Сервис - не должен знать того, что не должен.