我们的项目使用了很多下拉列表控件。我的问题是我们应该在数据库中存储什么,订单号或文本本身。
例如:
<option value="1">This is the first option</option>
<option value="2">This is the second option</option>
将“1”和“2”转换为smallint 1,2到数据库。 --OR -
<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数据类型。
订单号适用于统计信息,但Text是动态的修改,例如在1和2之间插入另一个选项,而不必担心订单。此外,如果它嵌入在GridView中,我们可以简单地拉取文本而不是在GridView中放置DropDownList控件以查看文本。
答案 0 :(得分:1)
如果您不想从数据库表中加载下拉列表,那么这就是我要做的。使用下拉列表中的整数值。那么你想要做的是在数据库中创建模仿这些值的表,因为这将使你能够在表上构建外键并执行有意义的报告以及统计(如你所谈到的)
最后,您可能希望创建与值匹配的Enum
,因为这样可以更轻松地在程序内部使用它们。例如:
public enum MyLookupTable
{
Value1 = 1,
Value2 = 2,
etc...
}
现在,我刚刚描述的只是迈出了一步,因为你只需要从数据库中加载它们,你可以找到一个很好的例子here。
答案 1 :(得分:0)
使用某种识别器。绝对是一个数字,但不仅仅是订单号。如您所说,您可能会在将来添加其他选项,或者您可能希望重新排列现有值。
答案 2 :(得分:0)
如果只有两个选项,我会在数据库中创建一个IsFirst
布尔列,并从所选内容中保留。对于第一个
答案 3 :(得分:0)
我建议你创建一个包含订单号和文本的表,订单号作为“自动增量”的主键。
例如,如果您在另一个表中需要“这是第一个选项”,请使用第一个表格的主键作为第二个表中的“外键”。这样,您只需更改文本值,而无需更改任何其他表。