Боюсь, вы задаете слишком много общих вопросов, чтобы получить полезный ответ. Я попробую:
Если вы хотите делать очень простые гео-пространственные вещи, попробуйте придерживаться ограничивающих рамок. Стоит изучить самую простую технологию, которая подходит для этой проблемы. Тем не менее, вы, вероятно, скоро узнаете, что вам нужно больше ...
Если вы хотите использовать geodjango, используйте базу данных PostGIS и забудьте о нереляционных. Вы будете разрабатывать бэкэнд, и у него есть крутая кривая обучения для программистов, не являющихся веб-приложениями. Начните с учебных пособий по геоджанго и постепенно разрабатывайте технологический стек, с которым вам удобно (с геоджанго услуги REST будут достаточно простыми).
Причиной выбора нереляционной базы данных является либо конкретный случай использования (вы хотите хранить документы, график, или вам не нужна предопределенная схема), либо необходимость в масштабировании (одновременное чтение и запись большого количества данных). много данных, и, следовательно, использовать несколько узлов и т. д.). Если вы не являетесь программистом веб-приложения, наймите его с опытом (который может немного «поработать над архитектурой программного обеспечения»), чтобы помочь вам на этом пути.
- Должны ли данные о местоположении храниться в отдельной таблице или в той же таблице
как другие данные пользователя?
- Должен ли я использовать временные метки для аннулирования старых обновлений местоположения или
Есть ли лучший способ сделать
что? (например, база данных может
сам перидически удаляй локацию
обновления).
Попросите кого-нибудь, кто занимался дизайном базы данных, помочь вам. Пока с описанием проблемы вы можете работать с двумя таблицами: таблицей User(id, name)
и таблицей UserLocation(id, timestamp, user_id, xCoordinate, yCoordinate)
. Затем добавьте строку UserLocation
для каждого образца, который вы получаете для пользователя. Позже вы можете разработать (и изменить) правила интерпретации таблицы UserLocation, например:
- Последнее пользовательское местоположение является действительным
- Если временная метка старше 4 часов, она непригодна для использования
- и т.д.
Из-за твоей линии вопросов ты чувствуешь себя немного не в своей лиге. Однако, если вы можете придерживаться простой технологии и работать прагматично, вы можете заставить свой сервис работать. Почему бы не начать с mysql + php и ограничивающих запросов? И поменять его на что-то другое, когда у вас все остальное заработает?