1
我想创建一个类似于Stackoverflow的认证系统。在这种情况下建模1:1可选数据的最佳方式是什么?
用户可以使用我网站上的帐户创建/登录,或使用来自各个提供商的openid创建/登录。
一个典型的模式可能看起来像:
Table: users
====================
id
email
password
date_created
Table: users_openids
====================
id
user_id
openid_url
这种模式的问题是,电子邮件/密码是只为我的网站账户。
我在下面提出的模式是最佳的方式来做到这一点?
Table: users
====================
id
account_type_id
date_created
Table: account_types
====================
id
account (enum('mine','openid'))
Table: users_openids
====================
id
account_type_id
user_id
openid_url
Table: user_mine
====================
id
account_type_id
user_id
username
password
Table: user_attributes
====================
id
user_id
email
nickname
full_name
dob
gender
这似乎有点怪我,任何想法/批评/优化/建议将不胜感激。