база данных — Как я могу сохранить контейнер C ++ как значение в Unqlite?

Движок Unqlite NoSQL имеет функцию unqlite_kv_store (), которая принимает ключ и значение для хранения. Есть ли способ сохранить контейнер C ++ (например, список, вектор, карту, массив) в качестве значения, а затем извлечь его без использования формата документа?

-1

Решение

Если в контейнере нет смежных элементов, то есть нет ссылок, нет указателей, вы не можете хранить его во внешнем объекте вашей программы.

Проблема в том, что ваша программа или ее данные могут быть загружены по разным адресам в памяти. Адреса (указатели), которые вы сохранили в базе данных, больше не действительны.

Один из способов — сохранить ваши элементы в массиве, а затем сохранить массив как тип BLOB.

Но лучшее решение для реляционных баз данных — хранить ваши контейнеры в виде отдельных таблиц; или добавлены к одной таблице. Посмотрите «База данных для ключа». Также изучите «нормализацию базы данных».

0

Другие решения


По вопросам рекламы [email protected]