需要有关首选项表数据库设计的帮助

时间:2011-03-15 16:33:59

标签: database database-design

我目前正在使用MYSQL数据库InnoDB格式开发一个Web应用程序,需要一些关于我的首选项数据库设计的帮助。

基本上我需要一个偏好表来确定用户汽车品牌偏好。

宝马0或1 丰田0或1 本田0或1 梅赛德斯0或1 HOLDEN 0或1 FORD 0或1(0表示不喜欢,1表示喜欢)

我曾经将所有的回复存储在一个表中,但是当我添加新的汽车品牌时很难维护。所以我需要让它变得动态,所以当我添加更多汽车品牌时,我不必修改数据库列。

因此,我系统中的每个用户都有自己用户的汽车首选项配置文件。

所以我的新设计是拥有用户表,首选项表和UserPreference表

UserPreference table

providerId
preferenceId
response

我的问题是,一旦新用户注册,我如何填充数据库中的用户首选项配置文件行(默认全部为0)?

或者我应该像下面那样制作我的UserPreference表,这样我就不必填充用户首选项配置文件行了?并且只有当用户喜欢汽车品牌时才在用户首选项表中创建一行。

哪种方法更好?

UserPreference table

    providerId
    preferenceId

提前非常感谢!

1 个答案:

答案 0 :(得分:1)

我认为第二种方法是最佳选择,只添加人们明确选择的偏好。这样,您可以假设在处理数据时所有内容都为0,除非表中存在首选项以显示其他内容。