以下問題:我想根據本地化的文本呈現短消息的新聞流。在這些消息的各個地方,我必須插入參數來「定製」它們。我想你知道我的意思;)Java數據結構使用Hibernate來存儲未知數量的參數?
我的問題很可能落入「哪是做的最好的風格?」類別:如何在數據庫中存儲這些參數(它們可能是需要根據區域設置格式化的字符串和數字)?我使用Hibernate的人ORM,我可以認爲以下解決方案:
- 構建組合的字符串,並將其保存爲這樣的(醜陋不堪,維護我認爲)
- 做一些花哨的正常化,並在數據庫中每一個參數單行(乾淨的我猜,但性能惡夢)
- 把PARAMS爲Array,地圖或其他Java數據結構,並將其保存在二進制格式(可能會導致很多的開銷大小明智)
我傾向於選項#3,但我afr從數據庫的大小來看,這可能會代價高昂。你怎麼看?
我想在我的情景中,速度比內存更重要。在相當短的時間段內會有成千上萬條這樣的消息,所以我非常害怕對性能的影響。我之前使用過「組合字符串」的方法,這在多方面都是很嚴重的。 我是否正確地說「串行化數據結構方法」的最大缺點是內存開銷? – Lunikon 2010-03-16 09:30:50
在數據庫中使用序列化數據的缺點是,每次解序列化時都必須將所有數據加載到內存中(如果您有大量數據,這可能會造成問題),而且您也無法進行查詢在序列化的列上。如果你的數據是標準化的,你可以選擇你需要的數據,但是你的性能會降低。 – 2010-03-16 10:13:02
儘管我不需要對這些參數進行查詢(它們僅用於顯示),而且數量不是太高,我想我會嘗試你的方法。看起來其他人似乎也是這樣想的。正如我想添加某種標籤系統一樣,我也許能夠以某種方式組合這些標籤系統。 – Lunikon 2010-03-16 22:24:03