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

时间:2013-09-06 16:50:06

标签: mysql sql database django database-design

我需要使用select标记包含下拉列表的多个表单。我有两个选项来表示每个列表中的选定选项:

  1. 将选项存储为字符串或整数。
  2. 将特定列表的所有可能选项存储在单独的表中,然后使用主表中的外键到此表。
  3. 例如,一个列表会询问用户他参加的大学。用户可以选择列表中的一个选项,也可以选择“其他”并在输入框中输入不同的值。

    另一份清单将询问他去年驾驶了多少里程。选项的形式为“0-100英里”,“100-500英里”,“500-1000英里”等等。如果我使用选项1,我可以存储整个字符串,或者字符串的短版本,或整数。在后两个选项中,我将手动将值转换为显示值。

    我倾向于选项2,但希望避免以后更改所有内容。我遇到这个选项的唯一问题是我必须使用每个表的初始值填充数据库(我使用Django并且可以使用fixture)。

    由于这是如此常见,人们倾向于使用哪种选择?有什么优点和缺点?

1 个答案:

答案 0 :(得分:0)

绝对是选项2.

  1. 规范化一切。
  2. 衡量查询效果。
  3. 仅当您发现效果不佳时才使用缓存或非规范化。