存储可变数据

时间:2011-08-16 16:01:12

标签: asp.net sql sql-server-2008 asp.net-mvc-3

我正在ASP.NET,C#,MVC3和SQL Server 2008中构建应用程序。

将表格呈现给用户以填写(姓名,电子邮件,地址等)。 我想允许应用程序的管理员在此表单中添加额外的动态问题。

额外问题的数量和返回的数据类型会有所不同。 例如,管理员可以添加0,1个或更多以下类型的问题:

  1. 你有一个完整,干净的驾驶乐趣吗?
  2. 将您的驾驶技能从1分为5分。
  3. 描述您上一次长途旅行的时间?
  4. 等...
  5. 请注意,提供的答案可能是二进制(Q.1),整数(Q.2)或自由文本(Q.3)。

    在MS SQL中存储这样的随机数据的最佳方法是什么?

    任何帮助都会非常适合。

    提前致谢。

2 个答案:

答案 0 :(得分:1)

除非空间有问题,否则我会使用VARCHAR(MAX)。它最多可以为您提供8,000个字符,并存储数字和文本。

编辑:实际上,正如亚伦在下面指出的那样,这将给你20亿个字符(足够一本书)。你可能会使用VARCHAR(8000)或类似的东西,它会给你多达8,000个字符。因为它是VARCHAR,所以它不会占用空白空间(所以0或1不会占用8,000个字符的空间,只有1个)。

答案 1 :(得分:1)

我将创建一个包含以下列的表,并将变量的名称与值一起存储在相应的列中,其他所有值都为null。

id:int (primary)
name:varchar(100)
value_bool:bit(nullable)
value_int:int (nullable)
value_text:varchar(100) (nullable)