PHP, MySQL, пространственные данные и дизайн

Я создаю приложение, где координаты механизмов регистрируются GPS. Я хочу реализовать несколько опций для начала, таких как:

  • отслеживание в реальном времени механизмов
  • отслеживание истории механизмов
  • хранение местоположений и область для клиентских записей

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

  • Как можно было бы заняться ORM для геометрии? Например: местоположение преобразовало бы в класс SpatialPoint, где область преобразует в класс SpatialPolygon
  • Как я сохраняю значительный поток данных, прибывающий из механизмов нормальным? Я думаю, что таблица удерживает последние точки (для данных реального времени) и пакет, анализирующий эти данные в PolyLines в отдельной таблице в целях истории (одна строка на сдвиг сотрудника на механизме).
  • Mysql является, вероятно, не лучшим выбором для этого, но я - планирование использования Solr как индекс для быстрых основанных на местоположении поисков. Хотя мы должны сделать некоторый расчет расстояния в реальном времени как как, какой механизм является ближайшим клиенту X. Какие-либо мысли?
5
задан Dylan 1 July 2010 в 09:46
поделиться

2 ответа

Я могу помочь вам в одном вопросе, mysql определенно - лучший выбор, я много раз шел тем же путем, что и вы, и пространственное расширение mysql просто фантастическое , на самом деле это потрясающе быстро даже для таблиц с более чем 5 миллионами строк пространственных данных, все это в индексе. Пространственное расширение - один из наиболее хорошо хранимых секретов mysql, который мало кто использует;)

ORM, я бы рекомендовал пропустить это tbh - если у вас огромный объем данных, все эти экземпляры классов убьют ваше приложение, придерживайтесь av простая структура массива для работы с данными.

RE массивный поток данных: либо потребляйте его в реальном времени и сохраняйте только каждую 10-ю запись, либо просто помещайте все это в одну таблицу - это не повлияет на скорость из-за того, как таблица индексируется, но, возможно, стоит учесть соображения размера .

В качестве альтернативы, исходящей от PHP, вы можете попробовать postgis на postgresql, но я всегда отдавал предпочтение mysql за простоту использования, встроенную поддержку и всестороннюю скорость.

Удачи!

4
ответ дан 14 December 2019 в 08:40
поделиться

Да, я также рекомендую использовать Solr. Текущий релиз - 1.4. Он невероятно хорошо работает для решения этой проблемы.

  1. ORM -... Вам может понадобиться sfSolrPlugin с Doctrine ORM, чтобы связать PHP с Solr, смотрите статью от LucidWorks под названием Создание поискового приложения за 15 человеко-дней

  2. обновление индекса в реальном времени -. Это появится в следующем выпуске Solr, я полагаю, Solr 1.5. Вы можете получить его из SVN.

  3. Геопространственный поиск - Я использую Spatial Search Plugin for Apache Solr. Возможно, G-s возможности будут включены в Solr 1.5. Я полагаю, что уже есть рудиментарная поддержка g-s, без использования плагина.

3
ответ дан 14 December 2019 в 08:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: