Нужно хранить МНОГО данных на устройстве Android, думаю о переходе на OODB

В настоящее время я работаю над проектом, основанным на Android. Не вдаваясь в подробности, программное обеспечение будет работать на специально созданном устройстве. Оборудование никогда не изменится и всегда будет таким же. Это несомненный плюс :)

С учетом сказанного, этот проект требует, чтобы мы сохраняли огромное количество данных на устройстве - до 3м строк в некоторых таблицах. SQLite отлично справляется со сканированием этого количества строк, проблема возникает, когда мы начинаем выполнять сложные соединения, чтобы вернуть все необходимые нам связанные данные. Мы думали о денормализации базы данных, но опасаемся, что это вытолкнет базу данных за пределы области использования.

Мы изучаем возможность использования объектно-ориентированной базы данных, например db4o или NeoDatis. Мы надеемся, что, сохранив объекты, мы сможем избавиться от наших отношений на уровне строк и сохранить их на объекте (как в ООП). Проблема в том, что мы не смогли найти никаких тестов производительности (по крайней мере, недавних) этих ODB, работающих и используемых на Android.

Есть ли у кого-нибудь опыт работы с OODB на Android и / или с хранением и доступом этот большой объем данных? В таком случае мы будем очень признательны за любой совет, который вы могли бы дать.

- Edit

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

Представьте, что мы создаем приложение для мониторинга каждого транспортного средства, которое ' едет по автомагистрали Нью-Джерси в любой момент времени. Для любого конкретного автомобиля нам необходимо отслеживать марку и модель автомобиля, количество людей в машине и демографический состав людей, находящихся в машине. Таким образом, в итоге вы получаете данные, которые выглядят примерно так -

car

id | цвет | make_id | in_toll_lane | model_id

make

id | название

модель

id | имя | make_id

car_person

id | возраст | секс | is_driver | car_id

toll_lanes

id | cars_in_line | ideal_cars_in_line | ideal_occupants

Эти данные будут часто меняться. Он также станет довольно большим, так как нет никаких сомнений в том, что по NJ Pike едет МНОГО людей в любой момент времени.

С этими данными мы должны иметь возможность по запросу сделать снимок любого, кто едет на щуку. Мы также должны иметь возможность сделать снимок всех мужчин, которые за рулем, или всех женщин на магистрали. Нам также необходимо иметь возможность выполнять поиск по возрасту, полу, марке, модели и т. Д.

Теперь представьте, что нам нужно выяснить, на какую платную полосу должна выйти каждая машина, исходя из количества людей в машине, идеального числа. пассажиров, количества машин, уже стоящих в очереди, и идеального количества машин, которые должны стоять в очереди.

Это очень простой пример, но довольно хорошо представляющий нашу проблему.

- Конец редактирования

Заранее спасибо!

11
задан Jason L. 1 December 2010 в 12:52
поделиться