我在表中有一个字段,我将在其中存储不同类型的数据,例如:X-Large、Medium、Small....或者我可能存储:2009 年 3 月 22 日、1 年、2 年、3年...或 06 个月、12 个月、1 年,或者我可能会存储:“33-36”、“37-40”...并且该数据不固定,我将来可能需要添加新类别。 ..
数据类型的明显选择是 nvarchar(length),但还有其他建议吗?有没有办法解决这个问题?
我在表中有一个字段,我将在其中存储不同类型的数据,例如:X-Large、Medium、Small....或者我可能存储:2009 年 3 月 22 日、1 年、2 年、3年...或 06 个月、12 个月、1 年,或者我可能会存储:“33-36”、“37-40”...并且该数据不固定,我将来可能需要添加新类别。 ..
数据类型的明显选择是 nvarchar(length),但还有其他建议吗?有没有办法解决这个问题?
听起来您正在尝试存储“大小”。也许您需要一个“大小”表,其中包含这些值(X-Large、Medium、Small、1 Year 等)和另一个表中的 ID 字段。
为什么你还想在同一个字段中存储一个日期让我有点困惑。你确定你不应该有两个不同的领域吗?
ETA: 根据您的评论,我建议创建几个额外的表:
SizeType - 定义您正在使用的“尺寸”类型(例如童装、童鞋、男鞋、女鞋、男衬衫、男裤、女衬衫、女裤等)。将有两列 - 一个 ID 和一个描述。
尺码 - 定义个人尺码(例如“尺码 5”、XL、33-34、0-6 个月等)。将有三列 - 和 ID、描述以及来自 SizeType 的相应 SizeType id。
现在在您的产品表上,您将输入尺码表中的 ID。这为您在添加新尺寸、确定哪种尺寸与哪种类型的产品搭配等方面提供了一些灵活性。您也可以进一步分解它以使设计更好,但我不想在这里使事情过于复杂.
不管你做什么,这样的数据库设计都不好看。
不过,您可以使用 BLOB 数据类型将任何数据存储在列中,或者如果它是文本则使用 Text 类型(这样搜索会更好,理解大小写等)。
nvarchar(max) 会起作用。否则,您可能有多个列,每种可能的类型之一。这将使您无法将诸如双精度数字之类的内容转换为字符串并返回。