Проектирование нерелаяционной БД
От: VotVopros  
Дата: 30.08.04 15:20
Оценка:
Здравствуйте,
есть необходимость написать модуль БД для микроконтроллера.
ТРЕБОВАНИЯ:
Модуль на С но в ООП-стиле,
ресурсы ограничены,
данные будут храниться в различных типах памяти (eeprom, flash, RAM),
решение должно быть ориентировано НЕ на таблицы (никаких индексов итд), А НА ОБЪЕКТЫ. (типа MIB но без деревьев)
нет функций динамического выделения памяти
производительность — критична,
объёмы памяти менее критичны.
КАК Я ЭТО СЕБЕ ВИЖУ:
1 способ) есть набор функций :get/set _ alarm, _string, _integervalue... минусы: каждый объект описывается несколькими записями в БД,
2 способ) есть набор функций get/set (void* pData, id).
каждый объект описывается ОДНОЙ записью в БД
НО минус: чтобы получить данные нужно что-то типа: (T_MY_DATA_TYPE*)pData ->my_structure_field = xxx;
1 и 2 способы требуют уникального id — по которому внутри модуля не так-то просто будет определить адрес реальных данных.
2-a) get/set (T_DB_ELEM* pData, id).
В T_DB_ELEM будет храниться адрес объекта, тип и много всего другого
минусы: хранить для каждого объекта его адрес и пр. — это очень накладно с точки зрения памяти.

И ещё у меня штук 5 разных вариантов в голове...

КАКОЙ ВАРИАНТ ВЫБРАТЬ, ГОСПОДА?
Может есть какие-то стандартные решения?


Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.