2012-11-01 41 views
0

我想提出一個網站的記錄。在數據庫中,我有文章的表樣的,看起來像這樣:尋找到CSV欄的值相同

id | name | cats       | etc. 
------------------------------------------------------ 
1 | "alice" | "this, that, those, them"  | 
2 | "bob" | "this, that, those"   | 
3 | "carol" | "this, banana, cupcake"  | 
4 | "dave" | "other, unrelated, words"  | 
5 | "errol" | "those, them, fishstick"  | 

在查看文章中,我想也顯示了一些相關的文章的基礎上,共同類別的數量。

例如,如果我在觀看愛麗絲文章我希望挑出(以優選順序)鮑勃(3家貓中常見),埃羅爾(2),卡羅爾(1)。

我知道,如果數據正常化(例如我可以做this),這樣會更容易,但不幸的是,這不是一個真正的選擇。

+2

你最好你的數據庫更好地改變結構。看看[許多一對多的關係】(http://en.wikipedia.org/wiki/Many-to-many_(data_model))。 – Leri

+0

爲什麼規範化不是一種選擇?這是真正做到這一點的唯一方法,就是在MySQL腳本中編寫字符串解析/比較過程(這並不好玩,我承諾)。 – jfmatt

+0

如果你將它推送到PHP,Perl或類似的地方,這不會太糟糕。如果你必須有一個只有MySQL的答案,那麼存儲過程或字符串解析函數可能是你唯一的答案。 @General_Mayhem關於興奮程度是正確的。雖然很多例子。 – ethrbunny

回答

0

我結束了創建幾個額外的表,並用適當的標準化數據每一次的東西保存填充它們。這些與現有的表格一起運行,因此它不是最乾淨的解決方案,但它的工作原理和查詢速度非常好。