2011-05-18 225 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