2014-02-12 147 views
2

我想在數據庫中保留一些對象(這可能是關係型(postgresql或MariaDB)或MongoDB)。我發現了一些似乎可能有用的圖書館,但我錯過了整個圖景。我已經使用boost :: serialization將C++轉換爲xml/binary,但是我不清楚如何將它導入數據庫(我使用二進制還是xml格式?)?數據庫中的C++持久性

我該如何將它存入我的mongoDB或postgresql?

+0

這是尋找工具的建議。此外,相當肯定標記垃圾郵件。 – sehe

+0

更新配方 – user2158687

+0

投票重新開放,我可以回答這個問題 – sehe

回答

2

你會序列化爲二進制,因爲它更小,速度更快。另外,XML格式在Boost Serialization之外並不是非常好用/容易使用。

警告:如果您需要在不同機器上使用格式,請使用Boost Portable Archive(EPA http://epa.codeplex.com/)。

你通常會存放在列

  • 文本,或者在base64編碼CLOB(字符大對象),並把數據庫中的字符集原生(Base64是安全的,即使對於ASCII)

  • BLOB(二進制大對象),它不需要編碼,可以更有效地存儲明智。

注意:如果你需要索引,存儲在正常數據庫列的索引屬性。

最後,如果你喜歡,我最近做了一個流緩衝器,允許你直接將數據流到Sqlite BLOB列中。或許你可以從蒐集這一些想法,你可以使用:

+0

謝謝!特別是便攜式檔案警告。 – user2158687