2011-08-26 152 views
0

我正在開發一個ruby on rails項目,該項目需要記錄一些適合多對多關係的簡單用戶數據(將它想象成一個用戶興趣集)。我對使用has_many:through和HABTM進行多對多的關係很有經驗,但是當事情足夠簡單以至於它可以被表示爲一個單詞時,創建一個新模型並且必須執行所需的連接訪問它。我不覺得記錄其他屬性的興趣本身的名稱是非常需要的,所以使用模型的論點並不具有說服力。我知道noSQL可以做到這一點,但我想知道用關係數據庫做這件事的正確方法是什麼(我使用postgres),無論是從性能和良好的設計角度來看。我想要使​​用的方法是使用文本數據類型將其記錄爲用戶模型中的分隔字符串,然後將其解析爲數組。或者這可以是表示散列鍵數組的字符串,然後該散列鍵查詢散列表或鍵/值存儲數據庫以獲得數據。我確信有許多不同的方法可以解決這個問題,但是我會很高興知道最佳做法是什麼,因爲我預計我將來會在很大程度上實現這一點。此外,如果您可以推薦任何有助於此工作的任何工具/寶石/框架,那將非常有幫助。替代使用關係數據庫中簡單數據的多對多關係

謝謝。

回答

1

基本上以某種方式序列化數據並將其存儲在列中,事先知道您不會對其進行查詢。我見過的一個相當緊湊的解決方案就是將它存儲爲json,這樣可以使您不必做任何複雜的事情。你只需要一個足夠大的varchar類型來存儲json字符串。