Wpis z mikrobloga

Hej ludziska, jestem w trakcie tworzenia pierwszego serwisu REST "na poważnie". Mam do zrobienia serwis, gdzie jedną z funkcjonalności jest wyszukiwanie wcześniej dodanych miejsc do bazy w pobliżu - np. 5 km / 10 km od Ciebie. W jaki sposób powinienem to trzymać w bazie danych aby jej nie zajechać? Miejsca będą tylko w Polsce.

Zapytanie SQL np. SELECT * FROM place WHERE lat > x AND lat < x2 AND lng < y AND lng > y2 nie będzie zbyt wydajne co nie? Może podział na regiony mógłby tu pomóc? Albo skorzystanie z zewnętrznego API, żeby liczył to np. Google Maps?
W grę wchodzi też np. podział na regiony, że jeżeli użytkownik zadeklaruje że mieszka w Warszawie, to będzie liczony region znajdujący się w Warszawie + np. 5km okrąg (takie predefiniowane regiony).

Macie jakieś pomysły jak to się robi? Na pewno nie jestem pierwszy a nie wiem gdzie szukać.

#programowanie #bazydanych
  • 8