У вас есть две разные проблемы; локальное хранилище и клиент-сервер данных push.
Для локального хранилища модель данных проста (основываясь на комментариях к ответу PARTH), и, таким образом, базовые данные идеально подойдут.
Нет необходимости изучать SQLite перед использованием Core Data . Базовые данные - это решение для обеспечения устойчивости графов объектов и управления изменениями SQLite является одним из механизмов постоянства Core Data, но это деталь реализации, которая в значительной степени полностью скрыта за высокоуровневыми API.
Для части клиент / сервер , использующей HTTP + JSON, отлично подойдет для связи между вашим приложением и сервером.
На стороне сервера воспользуйтесь любым из множества уже написанных решений для управления такого рода данными. Для такого рода приложений PHP + MySQL, вероятно, является вполне приемлемым решением в том смысле, что регистрация + простое хранение данных - это проблема, которая решалась примерно миллион раз с помощью этой комбинации инструментов (и, таким образом, вы сможете найти Сотни записей о том, как это сделать).