Вы можете сделать это многими способами, либо вы храните большую часть данных в общей пользовательской таблице (как вы собираетесь), и детали провайдера разделяются.
Или вы создаете дизайн, в котором вы можете подключить несколько логинов к одному пользователю. Это закончится чем-то вроде
- идентификатор пользователя
- id facebookuser (nullable)
- id twitteruser (nullable)
Это, возможно, даст вам много адресов электронной почты (и все же никакого пароля! Так как вы не являетесь поставщиком учетной записи); или нет вообще. Зависит от того, насколько этот пользователь доверяет вам в каждом провайдере.
Edit:
Вы также можете нормализовать данные без обнуляемых значений.
Вы можете сделать это, имея
- id_user
- id_facebookuser id_user
- id_twitteruser id_user