Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 表示数据库中的下拉列表值_Mysql_Sql_Database_Django_Database Design - Fatal编程技术网

Mysql 表示数据库中的下拉列表值

Mysql 表示数据库中的下拉列表值,mysql,sql,database,django,database-design,Mysql,Sql,Database,Django,Database Design,我需要有几个使用选择标签的下拉列表形式。我有两个选项来表示每个列表中的选定选项: 将选项存储为字符串或整数。 将特定列表的所有可能选项存储在单独的表中,然后使用一个外键从主表到该表。 例如,一个列表将向用户询问他就读的学院。用户可以选择列表中的一个选项,也可以选择其他选项并在输入框中输入其他值 另一个列表将询问他去年开了多少英里。选项的形式为0-100英里、100-500英里、500-1000英里,依此类推。如果使用选项1,则可以存储整个字符串、字符串的短版本或整数。在后两个选项中,我将手动将值

我需要有几个使用选择标签的下拉列表形式。我有两个选项来表示每个列表中的选定选项:

将选项存储为字符串或整数。 将特定列表的所有可能选项存储在单独的表中,然后使用一个外键从主表到该表。 例如,一个列表将向用户询问他就读的学院。用户可以选择列表中的一个选项,也可以选择其他选项并在输入框中输入其他值

另一个列表将询问他去年开了多少英里。选项的形式为0-100英里、100-500英里、500-1000英里,依此类推。如果使用选项1,则可以存储整个字符串、字符串的短版本或整数。在后两个选项中,我将手动将值转换为显示值

我倾向于选择2,但希望避免以后不得不改变一切。使用此选项遇到的唯一问题是,我必须使用Django和Fixture为每个表填充初始值

既然这很普遍,人们倾向于使用哪种选择?利与弊是什么?

肯定是选项2

使一切正常化。 度量查询性能。 仅当您注意到性能结果不佳时才使用缓存或反规范化。
使用规范化设计。如果你不知道这意味着什么,我听说过《为凡人设计数据库》这本书的好东西。我熟悉规范化,它对应于选项2。我不熟悉的是处理大型web应用程序和人们在生产中遇到的复杂问题,不仅仅是数据库模式级别,还有应用程序代码和数据管理。