Сериализация и Databasetechnics для поиска объектов - PullRequest
1 голос
/ 11 июля 2009

Мне было интересно, существует ли библиотека сериализации (c ++ или D), которая также предоставляет технические средства для определения местоположения определенного объекта (который был сохранен на диске) на основе определенных критериев, таких как определенная комбинация атрибутов.

Я знаю о sqlite и mySQL и так далее, но я ищу альтернативу. Поскольку эти базы данных не привязаны к конкретной схеме базы данных, известной во время компиляции (библиотеки), они только так хороши. Библиотека, которая знает структуры во время компиляции, может быть очень оптимизирована для этой структуры. Может быть, есть даже создатель библиотеки: в качестве входных данных вы предоставляете свои классы c ++ и требуемые атрибуты местоположения / идентичности, а в качестве выходных данных вы получаете библиотеку сериализации / базы данных, которая сильно оптимизирована для поиска объектов в соответствии с вашими потребностями.

Кроме того, я думаю, что sqlite и аналогичные функции для меня используются, так как мне не нужны все функции sql, только определение местоположения объекта на основе его атрибутов ..

Привет

- Marenz

1 Ответ

2 голосов
/ 13 июля 2009

У меня есть незавершенная работа Сериализация lib , над которой я работаю. (Некоторые комментарии здесь .) Это не сделано, но работает, в нем просто отсутствуют многие функции для «блеска» и «удобства». Если вы заинтересованы в его использовании, меня будут интересовать отзывы и пожелания.

Что касается хранения БД, я бы просто выбрал SQLite или MySQL. Из того, что я прочитал, оптимизаторы запросов для БД используют больше информации, чем вы можете иметь во время компиляции (они смотрят на распределение данных и тому подобное).

OTOH Я думал о создании механизма SQL времени компиляции, который использует метапрограммирование для построения планов запросов во время компиляции. У меня есть несколько других проектов, которые мне нужно сделать в первую очередь (например, file_malloc для выделения места в файле.)

...