0

我们的项目用户有很多下拉列表控件。我的问题是我们应该为他们在数据库中存储什么,订单号或文本本身。

例如:

<option value="1">This is the first option</option>
<option value="2">This is the second option</option>

将“1”和“2”转换为smallint 1、2到数据库。 - 或者 -

<option value="This is the first option">This is the first option</option>
<option value="This is the second option">This is the second option</option>

在字段中使用 varchar 数据类型。

订单号有利于统计,但文本是动态修改的,例如在 1 和 2 之间插入另一个选项,不必担心订单。此外,如果它嵌入在 GridView 中,我们可以简单地拉出文本,而不是在 GridView 中放置一个 DropDownList 控件以查看文本。

4

4 回答 4

1

如果您不想从数据库表中加载下拉列表,那么这就是我要做的。使用下拉列表中的整数值。然后您要做的是在数据库中创建模仿这些值的表,因为这将使您能够在表上构建外键并执行有意义的报告以及统计信息(就像您谈到的那样) .

最后,您可能希望创建Enum与值匹配的 ',因为这将使它们更易于在程序内部使用。例如:

public enum MyLookupTable
{
    Value1 = 1,
    Value2 = 2,
    etc...
}

现在,我刚刚描述的只是一步,无需维护下拉菜单,因为您只需要从数据库中加载它们,您可以在此处找到一个很好的示例。

于 2012-09-27T20:02:33.893 回答
0

使用某种标识符。绝对要一个数字,但不仅仅是订单号。正如您所说,您将来可能会添加其他选项,或者您可能想要重新排列现有值。

于 2012-09-27T19:48:46.490 回答
0

我建议您创建一个包含订单号和文本的表,其中订单号作为“自动增量”的主键。

例如,如果您在另一个表中需要“这是第一个选项”,请使用第一个表的主键作为第二个表中的“外键”。这样,您只需更改文本值而无需更改任何其他表格。

于 2012-09-27T20:08:25.823 回答
0

如果只有两个选项,我将IsFirst在数据库中创建一个布尔列并从选择的内容中持久保存。第二个选项为假 第一个选项为真

于 2012-09-27T19:50:49.970 回答