[英]database design: best way to store multiple options with multiple selects
[英]Is this the way to go for storing options from a dropdown with multiple selects?
细节
我有一个下拉菜单,可以选择多个选项。
我想轻松快速地在数据库中搜索这些选项。 为此,我选择在数据库中为每个选项创建一个列,如下所示。
userid | car |cdplayer|computer|
*********************************
785 | 1 | 0 | 1 |
每个列都使用TinyInt(1)。 如果选择了该选项,则我将存储值1,否则将存储0。该方法的问题在于,如果有很多选项,则表可能会变得很大。 如果我将选项存储在单个列中,那么我会假设在数据库中搜索这些列会更加困难,但是数据库将变得更小(也许这一点都没有关系)。
题
您目前使用的方法是否有任何问题? 有没有更好的方法可以实现我想要做的事情?
通常认为这是不良的数据库设计。 由于您必须更新数据库架构并更改所有应用程序以了解此新列,因此很难添加新选项。
更好的解决方案是在选项表中使用option_id
和option_name
列。 然后,您可以使用带有列user_id
和option_id
的引用表user_options
进行链接。
更好的结构可能是拥有一个用户表和一个选项表,并通过一个optionid链接它们。
userid | optionid |
*******************
12 | 1 |
*******************
12 | 3 |
*******************
35 | 2 |
选项表:
optionid | value |
*******************************
1 | Car |
*******************************
2 | CD |
*******************************
3 | Computer |
*******************************
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.