建模"可选"外键

Sta*_*wer 2 database-design

我有2个实体

  • 用户
  • UserCreditCard

用户可以使用信用卡.你会如何模拟这种关系?为什么?

选项1:用户拥有UserCreditCard的外键,该外键可能为null

选项2:UserCreditCard具有User的外键,不能为null

编辑

我的错误没有说明该用户将拥有0或1张信用卡,不再有

Ada*_*son 5

我会避免在这里建立双向关系.简单地CreditCard使用UserID引用User表的列对表进行建模似乎更有意义.添加CreditCardID引用User只会增加不必要的复杂性和错误机会.

我建议删除该引用来自 User CreditCard,使基准 CreditCard User非空的和索引.这应该为您提供所需的一切.