我正在构建一个站点(“站点”),并且正在考虑如何为其设计数据库架构。
我有一些会影响结果的场景:
- 用户可以选择在本站注册一个本地账号,这将使他日后使用该账号登录自己的本站账号。
- 用户可以选择通过另一个站点(“外部站点”)(例如 facebook connect、google、foursquare 等)登录,这将使他将来可以使用该站点登录他在该站点上的帐户。
- 他选择哪种登录方法(本地帐户或外部站点帐户)并不重要,用户将能够使用外部站点(例如 facebook、twitter、instagram 等)在站点上验证他的帐户以供使用他在外部站点上的数据(例如他在 twitter 上的推文,他在 flickr 上的照片等),在站点中。
我应该如何设计数据库的架构?
对于前两个场景,我想有一个名为的表Users,它有一个id, 和一个type字段。类型参考不同的表,例如FacebookUsers或GoogleUsers,每个具有user_id场-其具有外国相对于Users.id场-和其他领域,如first_name,profile_picture等。
然而:
- 我不确定使用这种方法有多聪明。
- 我不知道如何以这种方法实现第三种场景。