Я создаю веб-сайт, где пользователи могут оплачивать определенные услуги, предоставляемые владельцем. Это не интернет-магазин, хотя процесс оплаты довольно похож.
Проблема, с которой я сталкиваюсь, заключается в различных вариантах входа в систему во время этого процесса оплаты. Для входа в систему можно использовать учетную запись Facebook, зарегистрировать учетную запись / войти в систему, используя свою учетную запись, ИЛИ выбрать заполнить личную информацию без регистрации.
Я думал о таблице «потребители» (одноразовые пользователи без учетной записи), таблице «пользователи» для зарегистрированных пользователей, таблице «facebook_accounts» с информацией Facebook и таблице «user_has_facebook_account» для привязки учетных записей Facebook к зарегистрированным пользователям. на основе общего адреса электронной почты.
Однако, что, если пользователь входит в систему с помощью Facebook, не имея зарегистрированной учетной записи с паролем … Это действительно вызывает головную боль.
Какие-нибудь предложения, как я хотел бы разработать базу данных для поддержки этого?
Я бы создал только одну таблицу с клиентами. Там вы можете иметь поле с идентификатором пользователя Facebook. Если кто-то авторизуется через Facebook, вы можете создать для него новую запись (у вас есть адрес электронной почты и т. Д. Из Facebook). Поэтому вы можете установить пустой локальный пароль или потребовать от пользователя установить пароль для вашей страницы.
Вероятно, вам следует добавить людей, которые входят в систему с помощью Facebook, в таблицу «Пользователи» и создать для них пароль по умолчанию, а также хранить информацию / ключи OAuth.
Ваши «Пользовательские» объекты должны быть единичными и просто иметь другой метод для того, чтобы они стали «Пользователи», чтобы упростить вещи