需要偏好表数据库设计方面的帮助
我目前正在使用 MYSQL 数据库 InnoDB 格式开发一个 Web 应用程序,并且需要一些关于我的偏好数据库设计的帮助。
基本上我需要一个偏好表来确定用户汽车品牌的偏好。
宝马0或1 丰田 0 或 1 本田 0 或 1 梅赛德斯 0 或 1 霍顿 0 或 1 FORD 0 或 1(0 表示不喜欢,1 表示喜欢)
我曾经将所有响应存储在一张表中,但当我添加新汽车品牌时很难维护。所以我需要使其动态,这样当我添加更多汽车品牌时就不必修改数据库列。
因此,我系统中的每个用户都有自己的用户汽车偏好配置文件。
所以我的新设计有一个用户表、首选项表和 UserPreference 表
UserPreference table
providerId
preferenceId
response
我的问题是,一旦新用户注册,如何填充数据库中的用户首选项配置文件行(默认全部为 0)?
或者我应该像下面这样制作我的 UserPreference 表,这样我就不必填充用户首选项配置文件行?并且仅当用户喜欢汽车品牌时才在“用户偏好”表中创建一行。
哪种方法更好?
UserPreference table
providerId
preferenceId
非常感谢!
I'm currently developing a web application using MYSQL database InnoDB format and need some help with my preference database desgin.
Basically I need to have a preference table to determine the user car brand preference.
BMW 0 or 1
TOYOTA 0 or 1
HONDA 0 or 1
MERCEDES 0 or 1
HOLDEN 0 or 1
FORD 0 or 1 (0 means dislike and 1 means like)
I used to store all the responses in one table but is hard to maintain when I add new car brand . So I need to make it dynamic so I don't have to modify the database column when i add more car brands.
So Each User in my system have their own user's car preference profile.
So my new design its to have a user table, preference table and a UserPreference table
UserPreference table
providerId
preferenceId
response
My Question is How can I populate the User preference profile rows in the database (default all to 0) once a new user sign up ?
Or should I make my UserPreference table like below so I don't have to populate the user preference profile rows? And only create a row in the User Preference table when a user like a car brand.
Which is a better approach?
UserPreference table
providerId
preferenceId
Thanks so much in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为第二种方法是最好的选择,只添加人们明确选择的偏好。这样,您就可以在处理数据时假设所有内容均为 0,除非表中存在首选项以其他方式显示。
I think the second approach is the best option, Only add the preferences that people have explicitly chosen. That way you can assume when working with the data that everything is 0 unless a preference exists in the table to show otherwise.