2011-04-16 135 views
0

我正在研究自動建議功能,並將其作爲其中的一部分,我希望根據特定用戶的偏好權重結果。例如:如果我的大部分用戶經常輸入fish,那麼一旦用戶輸入f,算法將返回fish作爲最受歡迎的結果。但是,如果特定用戶主要輸入food,那麼我想要應用權重以便將特定用戶的偏好考慮在內。數據庫設計:記錄中單個字段的多個值

我最初是由具有大自動提示指數,與現場userids,每當在信用戶類型,算法將檢查是否該特定用戶的用戶ID存在於userids領域,如果存在認爲這樣做的將對該特定結果應用相應的權重。

幾張唱片會是什麼樣子:

word    |count   |userids 
------------------------------------------------------------------------------ 
food    |2    |aa,b,ccd 
fish    |12    |a,b,c,d,e,f,gg,he,jkl,sd 

不過,我不認爲這是一個將縮減那麼好甚至幾百個活躍用戶的方法。什麼是設計這個數據庫的更好方法?

由於提前, asleepysamurai

附:當談到數據庫設計時,我是一個新手,所以請用通俗的語言解釋你的解決方案。

回答

2

這不是一個好主意。該表格不是normalized,當您需要加入此字段時,您最終會遇到複雜的查詢。

更好的設計是有此表上一個wordid字段作爲主鍵(識別字)和多對多表來話與用戶連接(words_to_userswordiduserid字段)。

+0

我意識到這不是一個好主意,這就是爲什麼我要求更好的想法。你能告訴你如何去設計這樣一個數據庫嗎? – asleepysamurai 2011-04-16 06:56:52

+0

我完全同意。雖然存儲一個逗號分隔的列表*可能*在開始時看起來很容易,從長遠來看,它會導致很多麻煩 – 2011-04-16 06:57:02

+0

@asleepysamurai - 這就是我爲什麼提出了一個。 – Oded 2011-04-16 06:57:25

相關問題