2013-05-11 60 views
0

我有一个数据库,其中存储了大量用户创建的产品。 用户也可以创建“视图”作为容纳这些产品的容器,让我们称之为类别。 如果每个产品都有一个包含类别标识的类别字段,那很简单,但是每个产品都可以添加到多个类别中,因此不起作用。 目前我通过在类别表中有一个字符串字段“products”来解决这个问题,这是一个逗号分隔的product-id列表。 我想知道的基本上是这样做的“好”吗?它通常被接受吗?它会导致我没有意识到的某种问题? 最好创建另一个名为类似productsInCategories的表,它有两个字段,一个带有category-id,另一个带有product-id,并以这种方式将它们链接起来? 这些方法之一会以其他方式表现更好还是更好?作为字段或单独的表的分界字符串ID?

我现在在使用sqlce,如果这很重要,但那很可能很快会改变。

回答

1

我会去第二个选项:一个单独的表。

如果您需要从产品角度进行查询,使其更易于处理。此外,加入类别将简单快捷。这正是关系数据库的作用。

想象一下简单的查询,例如产品所属的类别。使用您的解决方案,您需要逐个检查所有类别,解析每个类别的csv-list以查找产品。使用单独的表格,它是一个干净的查询。

+0

非常感谢你的回答,我很感激。我改变了这种方式,现在肯定感觉像是正确的方式。我只是在这里问另一个qrelated问题:http://stackoverflow.com/questions/16496850/conditional-insert – Clox 2013-05-11 12:11:43

相关问题