SQL关系表,链接表

时间:2015-12-19 08:40:56

标签: sql

所以我不确定我是否使用了正确的术语,或者是否已经有了这方面的指南(我不知道如何调用它,所以我可以& #39; t找到很多信息)

所以,我有3张桌子

  1. 用户表
  2. Google用户表
  3. Facebook用户表。
  4. 我的问题是,将link-ID添加到Google table+Facebook table是否更好,或者最好再制作两个将其他表连接在一起的表格。

    实施例。 USER TABLE

    User ID
    Google ID
    Facebook ID
    

    或2个链接到主表的表

    GOOGLE LINK TABLE

    User ID
    Google ID
    

    FACEBOOK LINK TABLE

    User ID
    Facebook ID
    

1 个答案:

答案 0 :(得分:0)

IMO,最好使用以下

Users (UserId,UserName,PasswordHash--,...other fields)
GoogleUsers (UserId,GoogleId--,...other fields)
FacebookUsers(UserId,FacebookId--,...other fields)

create view (UserId,InternalKey,UserType--,...other fields)
as
   select UserId,FacebookId,'Facebook'--,...other fields
   from FacebookUsers
   union all
   select UserId,GoogleId,'Google'--,...other fields
   from GoogleUsers
   union all
   select UserId,UserId,'Local Users'--,other fields
   from Users u
   where not exists(select 1 from FacebookUsers f where f.UserId=u.UserId)
   and not exists(select 1 from GoogleUsers g where g.UserId=u.UserId)