我在表格中有一个字段,我将在其中存储不同类型的数据,例如:X-Large,Medium,Small....或者我可能存储:2009年3月22日,1年,2年,3年...或者06个月、12个月、1年,或者我可能存储:"33-36","37-40"...并且这些数据并不是固定的,将来我可能需要添加新的类别...
显然的数据类型选择将是nvarchar(长度),但有其他建议吗?是否有绕过此问题的方法?
我在表格中有一个字段,我将在其中存储不同类型的数据,例如:X-Large,Medium,Small....或者我可能存储:2009年3月22日,1年,2年,3年...或者06个月、12个月、1年,或者我可能存储:"33-36","37-40"...并且这些数据并不是固定的,将来我可能需要添加新的类别...
显然的数据类型选择将是nvarchar(长度),但有其他建议吗?是否有绕过此问题的方法?
听起来你想要存储一个“尺寸”。也许你需要一个“尺寸”表,里面有这些值(特大号、中号、小号、1年等)和一个ID字段放在另一个表里。
您为什么也想在同一个字段中存储日期对我有点困惑。 您确定不应该有两个不同的字段吗?
ETA: Based on your comment, I would suggest creating a couple additional tables:
大小種類 - 定義你正在使用的“大小”類型(例如兒童服裝、兒童鞋、男士鞋、女士鞋、男士襯衫、男士褲子、女士襯衫、女士褲子等)。 將有兩個欄位 - 一個ID和一個描述。
尺码 - 将定义个体尺寸(例如“尺码5”,XL,33-34,0-6个月等)。将有三列 - 一个ID,一个描述和来自SizeType的相应SizeType ID。
现在,在您的产品表中,您将放入来自尺寸表的ID。这使您在添加新尺寸,确定哪些尺寸适合哪种产品等方面具有某些灵活性。您也可以进一步拆分以使设计更好,但我不想在这里过于复杂化事情。
无论你如何做,这种数据库设计看起来都很糟糕。
尽管如此,您仍可以使用BLOB数据类型将任何数据仅存储在列中,或者使用文本类型(这样搜索将更有效,理解大小写等)。
nvarchar(max)将起作用。否则,您可能会有多个列,每个列都有可能的类型。这将防止将双精度数字转换为字符串并再次转换。