Выбор технологий для backend в geo сервисе на yandex map?
Добрый день, планирую сделать проект с использованием yandex map api
Ожидается over 100к объектов с 20+ свойствами в том числе картинками. Ну и фильтром по этим свойствам (без перезагрузки страницы конечно)
вопрос по серверной части.
По языку стоит ли делать на node.js (учить придется) хотя имеются знания php (laravel) ?
Соответственно по базе данных нужна mongodb? или MySQL "справится" ?
Вячеслав Алиев: php+mysql+js+(html|css)+yandex_maps_api
у api yandex maps есть несколько способов для отображения over100500 объектов, читайте документацию .
Сам пользовался ObjectManager-ом для отображения объектов, при клике подгружал данные ajax-ом, а для фильтра использовал встроенный метод setFilter();
IceJOKER: про отображение проблем нету, там группировка и тп (я это знаю), вопрос именно про бекэнд, например организую поиск по id запрос будет в базу с 100500 объектами.
Вячеслав Алиев: over 100k записей - вряд ли это доставит неудобств MySQL , тем более по id, а если по-другим полям, то придется грамотно расставлять index-ы и все.
PHP норм, вопрос как хранить данные эффективно. Можно взять постгрес и потом если не будет хватать производительности в плане поиска (зависит от характера этого поиска) - уже можно будет подключать какой-нибудь эластик серч. Или монгу для хранения агрегированных данных для более быстрого поиска и выборок, но все вешать на монгу я бы не стал.
Вячеслав Алиев: posgres - реляционная база данных, то есть все хранится в нормализованном виде. То есть обычно приходится делать джойны и т.д. Монга же любит денормализованные данные. Грубо говоря, в идеале, алгоритм такой:
Пишем в базу данные, формируем агрегаты под каждый тип запросов, делаем в монге очень простые запросы за счет чего все будет оочень быстро работать. В идеале в коллекциях монги должны храниться напрямую результаты выборки, как если бы вы делали джойны, готовили данные и приводили их к нужной структуре... то есть по сути это такой вот промежуточный кэш. В большинстве случаев монгу стоит использовать именно так.
Для постгреса же есть куча плагинов, в частности - гео индексы. То есть можно вообще отказаться от монги или эластики (последнее только если поиск простой, без морфологии и прочего).
Node.js если не знаете – не стоит начинать сразу с него новый проект, тем более что PHP будет достаточно в вашем случае. В плане БД, посмотрите PostGIS, это расширение для PostgreSQL для поддержки Geo данных.