我有以下情形创建数据库模式中的问题:数据库设计问题
(我不是创建一个交友网站,但只是用这个作为一个例子)
用户登录到交友网站,并给出了头发的颜色多重选择,他们希望他们的日期有:
这是很容易与下面的三个表的模型:
表:
用户 {键}
染发 {键}
UserHairColour {用户键} {HairColourKey}
然而,用户也可以选择 '任意',这意味着他们不选择不关心头发颜色,所有的头发颜色都应该包含在选择中。
我该如何给用户提供'任何'选项?
我明显可以选择所有的头发颜色,并将它们推到'UserHairColour'中,但如果我将来需要添加新的头发颜色,该怎么办?
我认为这看起来是最实用的解决方案。这种方法的缺点是,应用程序将不得不做一个额外的旅行数据库。 E.g IF(User。PreferredHairColour.Count == 0) User。 PreferredHairColour =“select * from HairColour where UserKey = User.Key” (Not real code :-)) 谢谢 – 2009-09-28 13:37:11
您的编辑让我重新更仔细地阅读了这个问题。我错过了“多选”意味着多个复选框而不是单选按钮的可能性。因此,如果用户可以选择Blonde + Brunette,那么您对Any的保留是合理的。但是,如果选择是独家的,那么我认为Any是一个有效的选择。 – APC 2009-09-28 19:53:45
其实,即使有排他性的选择,“任何”选项都是多余的。 – 2009-09-28 20:31:41