1

我在表中有一个字段,我将在其中存储不同类型的数据,例如:X-Large、Medium、Small....或者我可能存储:2009 年 3 月 22 日、1 年、2 年、3年...或 06 个月、12 个月、1 年,或者我可能会存储:“33-36”、“37-40”...并且该数据不固定,我将来可能需要添加新类别。 ..

数据类型的明显选择是 nvarchar(length),但还有其他建议吗?有没有办法解决这个问题?

4

4 回答 4

3

听起来您正在尝试存储“大小”。也许您需要一个“大小”表,其中包含这些值(X-Large、Medium、Small、1 Year 等)和另一个表中的 ID 字段。

为什么你还想在同一个字段中存储一个日期让我有点困惑。你确定你不应该有两个不同的领域吗?

ETA: 根据您的评论,我建议创建几个额外的表:

SizeType - 定义您正在使用的“尺寸”类型(例如童装、童鞋、男鞋、女鞋、男衬衫、男裤、女衬衫、女裤等)。将有两列 - 一个 ID 和一个描述。

尺码 - 定义个人尺码(例如“尺码 5”、XL、33-34、0-6 个月等)。将有三列 - 和 ID、描述以及来自 SizeType 的相应 SizeType id。

现在在您的产品表上,您将输入尺码表中的 ID。这为您在添加新尺寸、确定哪种尺寸与哪种类型的产品搭配等方面提供了一些灵活性。您也可以进一步分解它以使设计更好,但我不想在这里使事情过于复杂.

于 2009-03-13T12:47:33.237 回答
1

不管你做什么,这样的数据库设计都不好看。

不过,您可以使用 BLOB 数据类型将任何数据存储在列中,或者如果它是文本则使用 Text 类型(这样搜索会更好,理解大小写等)。

于 2009-03-13T12:46:53.177 回答
0

nvarchar(max) 会起作用。否则,您可能有多个列,每种可能的类型之一。这将使您无法将诸如双精度数字之类的内容转换为字符串并返回。

于 2009-03-13T12:45:19.623 回答
0
  • nvarchar(max) 如果数据被限制为小于 2Gb 的字符串。
  • ntext 如果您需要允许超过 2Gb 的字符串。
  • 如果您需要存储二进制数据,请使用二进制或图像。
于 2009-03-13T12:46:16.190 回答