Я часто сталкиваюсь с проблемой, что у меня есть массивы простых (POD) объектов, и мне нужно сохранить их на диск, найти содержимое по одному столбцу и извлечь его.
Давайте возьмем в качестве примера простой кэш:
id: Integer
expires: Date
query: String
result: String
Обычные операции - сохранение объекта (# 1), извлечение объекта по идентификатору (# 2) и удаление всего после определенногоdate (# 3), без использования DSL, который должен быть проанализирован во время выполнения (# 4).
Поскольку я знаю формат моих данных, мне не нужна поддержка для хранения произвольных документов (# 5).
Это должно быть достаточно распространенным, чтобы привести к потоку библиотек, делающих именно это, но я вижу только хранилища ключей-значений, такие как bdb, tokyocabinet и т. Д. (Которые не работают из-за #3) полнофункциональные базы данных SQL, включая SQLite, MySQL и т. Д. (# 4), а также базы данных без схем, такие как CouchDB, MongoDB и т. Д. (# 5).Сохранение его в виде простого CSV / XML / JSON работает достаточно хорошо, но плохо работает с № 2 и № 3.
Я ищу что-то вроде Мульти-индекс Boost (ноиспользование диска в качестве хранилища) или Squeryl , но с использованием собственного бэкэнда вместо прославленного компилятора DSL-to-SQL.
Есть что-нибудь подобное, или я чертовски разбираю CSV вручную илинаписать огромное количество шаблонов, чтобы использовать преимущества базы данных SQL?