Я работаю над приложением, которое представляет собой мини-дизайн СУБД для оценки запросов SPJ.Программа реализуется на C ++.
Когда мне нужно обработать запрос для объединений и групп, мне нужно поддерживать набор записей в основной памяти.Таким образом, я должен поддерживать временные таблицы в основной памяти для выполнения запросов, введенных пользователем.
Мой вопрос: как лучше всего добиться этого в C ++?Какую структуру данных мне нужно использовать для достижения этой цели?
В моем приложении я храню данные в двоичных файлах и использую каталог (который содержит схему для всех существующих таблиц).нужно извлечь данные и обработать их.
У меня в приложении только 2 типа данных: int (4 байта) и char (1 байт)
Я могу использовать std :: vector.Фактически, я попытался использовать вектор векторов: внутренний вектор используется для хранения атрибутов, но проблема в том, что в базе данных может быть много отношений, и каждый из них может иметь любое количество атрибутов.Кроме того, каждый из этих атрибутов может быть int или char.Итак, я не могу определить, как лучше всего достичь этого.
Редактировать
Я не могу использовать структуру для таблиц, потому что я не знаю, сколькостолбцы существуют во вновь добавленных таблицах, так как все таблицы создаются во время выполнения согласно пользовательскому запросу.Таким образом, схема таблицы не может быть сохранена в структуре.