代码之家  ›  专栏  ›  技术社区  ›  Jon Smock

在Web应用程序中保持下拉列表干燥

  •  2
  • Jon Smock  · 技术社区  · 17 年前

    我正在为各种表单等编写CMS,我发现我正在创建许多下拉列表。我真的不想为简单的下拉列表而用大量的随机键/字符串值表来搅乱我的数据库,其中有2-4个选项的更改非常少。你如何以负责任的方式来管理这件事?

    这是语言不可知论者,但是我在Rails中工作,如果有人有具体的建议的话。

    3 回复  |  直到 17 年前
        1
  •  4
  •   teedyay    17 年前

    我们将所有内容放入数据库中的一个查找表中,其中一列映射到一个枚举,该枚举描述了它的查找对象(标题、国家等)。

    这使我们能够在查找下拉列表中添加“其他,请指定”选项的灵活性。我们做了一个封装这个的控件,它有一个属性来根据具体情况打开或关闭这个行为。

    如果最终用户选择了“Other,please specify”(其他,请指定),则会出现一个文本框,供他们输入自己的值。这将添加到查找表中,但标记为特殊项。

    该表包含一个标志,指示每个查找值的状态:active、inactive和adhoc。下拉列表中只会显示活动项;临时项是通过“其他,请指定”选项创建的项。

    管理页面显示了特殊值的使用频率,允许站点的管理员将常用值提升为通用值(即将其状态标志更改为活动)。

    对于你的应用程序来说,这可能有点过头了,但对于我们的应用程序来说,这确实很管用:应用程序基本上完全是针对特定业务数据的CRUD操作。我们在整个站点中进行了几十次查找,客户希望能够维护自己。这给了他们完全的灵活性,没有我们的干预。

        2
  •  3
  •   jle    17 年前

    你有一个单独的下拉列表和一个额外的列来说明下拉列表的目的…用WHERE子句限制结果…

        3
  •  1
  •   Dillie-O    17 年前

    在我目前的位置,我们实现了一个lookupcode表,其中包含一个代码组、代码和含义列,以及一些其他列(如active)。这样,一个包含所有查找值的表就位于一个位置,您可以执行一些快速查找以绑定到下拉列表。