【问题标题】:Representing drop down list values in the database表示数据库中的下拉列表值
【发布时间】:2013-09-10 20:17:55
【问题描述】:

我需要使用select 标签创建几个带有下拉列表的表单。我有两个选项可以表示每个列表中的选定选项:

  1. 将选择存储为字符串或整数。
  2. 将特定列表的所有可能选择存储在单独的表中,然后使用主表中的外键访问该表。

例如,一个列表会询问用户他就读的大学。用户可以选择列表中的选项之一,也可以选择“其他”并在输入框中输入不同的值。

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

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

既然这很常见,人们倾向于使用哪个选项?有什么好处和坏处?

【问题讨论】:

  • 使用标准化设计。如果你不知道那是什么意思,我听说过这本书的好东西,数据库设计为凡人。
  • 我熟悉规范化,它对应于选项 2。我不熟悉的是处理大型 Web 应用程序和人们在生产中遇到的复杂问题,而不仅仅是数据库模式级别,还有应用程序代码和数据管理。

标签: mysql sql database django database-design


【解决方案1】:

绝对是选项2。

  1. 标准化一切。
  2. 衡量查询性能。
  3. 仅当您发现性能不佳时才使用缓存或反规范化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多