2011-05-18 164 views
2

我希望允许所有应用程序用户为他们的产品添加他们自己的类别。产品可能会有所不同,所以不仅仅是我可以预测和插入我自己的东西。如何避免重复数据插入?

但是,如果我们允许所有用户自己添加的类别,我们可能有这样的问题:

用户A将一个名为类别:从树上

食物:水果

用户B将一个名为类别

(这是一个虚拟的例子,但也许你会遇到问题)。

一般来说,我们有什么方法可以避免我们的系统重复?

我完全不知道我们可能拥有的方式,所以一些资源,链接,任何东西都更受欢迎。

非常感谢。

回答

3

不是最友好的解决方案,但是您可以将所有新条目添加到由选定数量的用户主持的队列中。只有在批准后,新的条目才会出现。

+0

的确,问题在于我们需要找到一种自动化的方式,因为我们没有资源来处理这个问题。 – MEM 2011-05-18 22:14:41

+0

@MEM是否存在一种自动化解决方案,以避免“水果”存在时的“食物来自树木”?您可能需要更少的时间调节,而不是编写该算法:-) – jeroen 2011-05-18 22:16:52

+0

@MEM:您的示例需要IBM Watson机器在语言上对“水果”和“来自树木的食物”之间潜在意义上的重叠进行推理。即使专业人类哲学家从事本体论工作也很难将你的例子排除在外。事实上,作为英语母语的人,我无法弄清楚他们是相同的还是不同的。 – 2011-05-18 22:17:59

0

分层类别,以便遇到这种情况时可以干净地处理。然后当有人出现并删除子类别时,这些元素可以被转储到父类别中。

+0

护理解释多一点点。我们需要避免这种情况的主要原因是:a)允许比较(稍后)b)避免数据库垃圾。 – MEM 2011-05-18 22:16:29

2

如果是我的理解:

首先,recomended类别名称,如果用户开始键入“FRU”,显示存在caregories callesd“水果”等

我使用别名,例如:

表格类别:

id (serial) 
name (varchar) 
aliasof (bigint) 

从后端我列出了新的分类加,如果存在,使关系:

Supose:

1 fruits   0 
2 fruits of tree 1 
+0

谢谢。不幸的是,用户没有技术知识,通常他们只是插入即使如此,我们给他们一些替代品,我们警告他们,“如果您在这里列出类似的列表,请避免引入新数据”。事实上,这是挑战。 :) – MEM 2011-05-18 22:31:45