Вы всё равно рано или поздно упретёсь в необходимость хранения истории на сервере. Для синхронизации, для мультилогина на разных девайсах. Юзеры заставят, проверено на своей шкуре :)
Для локальной базы - идеально SQLite, потому что она нативно уже есть и хорошо работает, а мощь взрослых СУБД вам тут не нужна. Структура - не принципиальна, зависит от ваших данных.
Для серверной базы вам нужно выбрать опять же, базу, которая хорошо сделает то, что вам нужно. nosql базы хороши для складирования и выборки данных, но ужасны для изменения. Для логов и и истории - ок, для работы с данными пользователей - надо нормальный sql. Тип базы - зависит от нагрузок.
И максимально кешируйте всё в памяти. Работать напрямую с базой на сервере - потеря производительности. Опять же, я не знаю, сколько у вас будет онлайн, сложно сказать что-то определённое в этой ситуации.