1

支持在数据库中存储组合框值(应用程序的静态查找值(字符串等))与将它们直接存储到 html 页面本身的典型参数是什么?

4

6 回答 6

4

原因是将数据与 UI 分开。

将数据放在一个位置的目的是使更改、修复和更新站点更容易。如果您有 10 个表单并且每个表单都需要一个状态下拉列表,那么稍后添加一个状态将需要更改 10 页上的文本。

即使只有一个下拉菜单,分离也使维护更容易。

于 2010-02-22T19:16:19.760 回答
3

我认为最好的论点是,将这些值保存在数据库中意味着页面上的值始终与数据库中的值保持同步或者允许选择哪些值插入到数据库中。

假设您有一个可以选择的颜色列表。在 HTML 页面上,您允许用户选择“红色”、“绿色”、“蓝色”和“黄色”。数据库反映了这一点。

几周后,您也添加了紫色的功能。因此,您允许用户在 HTML 页面上选择“紫色”,但忘记了数据库。某些用户选择“紫色”并尝试将他们的选择插入数据库,但您会收到外键约束错误,因为“紫色”当前不是数据库中的有效值!

几周后,“黄色”的功能已被删除。这次您记得从数据库中删除黄色,但忘记了 HTML 页面。因此,用户选择“黄色”并尝试将他们的选择插入数据库,但您会得到相同的外键约束错误!

又过了一周,您为“粉红色”添加了功能。这一次,您记得将它添加到数据库中,但忘记了 HTML 页面。现在,用户错过了数据库允许的酷炫“粉红色”功能,因为 UI 没有更新!

简单地从数据库中检索可能的值意味着在这种情况下只需要更新数据库。

于 2010-02-22T19:14:26.583 回答
2

因为查找值会随着时间而改变。将一个添加到数据库非常简单,然后如果您正确编码,它也会出现在 UI 中。经常查找的值也可以用于其他操作,因此将它们卡在 UI 中(尤其是在由 IIS 提供服务后才“可用”的 UI)会使它们无法访问 - 所以这是一种非常糟糕的做法。

在一个地方定义列表也是一个好习惯,然后在很多地方使用它(使更新更容易),所以数据库是一个很好的地方。如果数据库不合适或不可用,那么您可以使用另一种机制,例如在您的程序集或共享模块中声明的枚举。

于 2010-02-22T19:16:26.703 回答
2

将列表存储在数据库中的另一个原因是列表可能会更改。有人会决定更改列表中的现有项目之一,或者他们会想要添加或删除列表中的项目。

更改数据库中的数据比重新部署新版本的网页更容易。

于 2010-02-22T19:17:18.997 回答
1

当您在多个页面上使用这些值时,如果其中一个值发生更改或添加或删除某个值,则很难维护列表。

于 2010-02-22T19:15:30.650 回答
1
  • 数据和呈现分离,因此您可以通过多种方式呈现您的数据
  • 当数据只存储在一个地方时,更容易保持数据的最新状态。
  • 更容易本地化。
  • 更容易过滤,如果您将元数据添加到数据库
于 2010-02-22T19:18:05.793 回答