【问题标题】:Data Type of a field字段的数据类型
【发布时间】:2021-04-08 20:45:59
【问题描述】:

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

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

【问题讨论】:

    标签: database database-design datetime types nvarchar


    【解决方案1】:

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

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

    预计到达时间: 根据您的评论,我建议创建几个额外的表格:

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

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

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

    【讨论】:

    • 它是尺码,但婴儿装的尺码是根据年龄、月数或年数计算的。鞋子的尺码与衣服的尺码不同,你认为我应该怎么做?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:
        • nvarchar(max) 如果数据是 限于小于的字符串 2Gb。
        • ntext 如果您需要允许 超过 2Gb 的字符串。
        • 二进制或图像,如果您需要存储 二进制数据。

        【讨论】:

          猜你喜欢
          • 2016-04-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-04
          相关资源
          最近更新 更多