0

将 SQL Server DB 中的值存储为逗号分隔值有什么问题吗?

我有 100 个类别,每个类别有 500 个产品。我最初的想法是将产品代码存储在逗号分隔的值中,以便表中只有 100 条记录:

  catagcd1 - prod1,prod2,prod3......
  catagcd2 - prod2,prod3,prod5......

但是当我问我的朋友时:不要将它存储为逗号分隔,存储为正常结构。这意味着:

   catagcd1 - prod1
   catagcd1 - prod2
   catagcd1 - prod3
   catagcd2 - prod2
   ----------------
   ----------------

我的方式和他的方式有什么区别?从性能的角度来看还有什么区别?你能解释一下吗?

4

1 回答 1

2

您的朋友可能指的是数据库规范化,即如果产品可以出现在多个类别中,则您可以在categoryand之间建立一对多的关系product,或者是 many: many ( category, productand )。categoryproduct

将数据存储在逗号分隔值中的问题在于,每次需要处理产品时都需要对产品字符串进行解码,这可能会很慢而且很麻烦。

作为替代方案,如果您从不需要直接引用产品,您还可以将产品/类别层次结构存储在 Xml 列中(处理类似于文档或多值数据库的问题)

于 2012-07-31T05:55:18.033 回答