【问题标题】:what is the best pratice to save radio button list choice in database? ASP.NET在数据库中保存单选按钮列表选择的最佳做法是什么? ASP.NET
【发布时间】:2015-02-09 14:29:01
【问题描述】:

我想知道将单选按钮列表的选择存储在数据库中的最佳方式是什么。

我们应该存储索引、项还是值?例如,存储索引将使以后从数据库中填充单选按钮列表变得容易,但如果需要,则很难直接读取数据库条目。 我们是否应该同时存储索引和值?

先谢谢了。

【问题讨论】:

  • 索引无关紧要,存储值,例如ID。我猜所有单选按钮项目都包含要显示的文本和标识它们的值。后者是相关的。

标签: c# html asp.net database


【解决方案1】:

好主意是准备以下表格结构:

  • 字典
  • 价值观

字典表示可能的单选按钮列表或下拉列表类型,值存储特定 RBL/DDL 类型的项目列表。

表格应如下所示:

Dictionaries
------------
dictionaryID PK
description

Values
------
valueID PK
dictionaryID FK
value

然后您可以从您的模型/视图模型实体引用 valueID。

SomeEntity
----------
someEntityID PK
someRadioChoice FK(valueID)

当然,如果您想填充单选按钮或下拉列表,您可以简单地在 where 子句中使用一些 dictionaryID 查询值。

【讨论】:

  • 似乎是一个强大的结构。即使单选按钮列表中有 2 个或 3 个选项,是否值得这样做?在“现实生活”中是否真的像这样,对于实时网站来说意味着什么?
  • 肯定是大型项目的不错选择。我认为它有一些优点。例如,它使您能够即时添加新的选择和字典。它还为您提供了某种顺序,因为您将所有字典放在一个地方。当然,您甚至可以在您的 aspx/cshtml/vbhtml 文件中对您的单选按钮列表选项进行硬编码,但我认为为项目的更改和进一步开发打开它总是好的。我参与了使用上述结构的项目,它已经使用了很多年并且运行良好。
  • 使用这样的模型,您可以存储您需要的所有其他可能的单选按钮/下拉列表。似乎比我的变体更灵活。
【解决方案2】:

使用查找表来存储列表项指定的信息,例如文本,并使用列表项的值作为主键的(部分)。然后就像 Tim Schmelter 所说的那样存储值。

【讨论】:

  • 所以lookUpTable 包含所有SelectedItemSelectedValue' (PK) of my radio button list and in my table I store only SelectedValue` (FK) 对?为了完成最佳实践,我假设我应该绑定查找表中的单选按钮列表?
  • 我会这样做的。至少我团队中的项目很常见。仍然比硬编码文本/值对更好,而且仍然很简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
  • 2020-07-16
  • 2012-09-11
  • 1970-01-01
相关资源
最近更新 更多