Database-Recommendation
地理數據應用程序的數據庫選擇
我正在編寫一個客戶端-伺服器應用程序,其中地理標記的照片是主要內容。
後端基於 ASP.NET Core 技術棧。
後端應該能夠搜尋區域中的照片(按半徑),按標籤搜尋照片並可能建議標籤(一種自動完成),所有這些東西都將通過一些簡單的 REST API 可見。
我不確定我是否需要關係數據庫來完成這樣一個簡單的任務。我也很想看到從 DB 的點的距離而不是我的程式碼進行的搜尋。與 .NET Core 的良好集成是一大優勢。
我曾與 MSFT 的 SQL Server 合作過,但對於這個簡單的任務來說似乎有點過重。
你們能否在該領域有一些經驗,為我的任務推荐一個數據庫?
PostgreSQL
去看看這本書PostGIS in Action Second Edition。
PostGIS 擁有您所要求的一切。
後端應該能夠搜尋區域中的照片(按半徑),按標籤搜尋照片並可能建議標籤(一種自動完成),所有這些東西都將通過一些簡單的 REST API 可見。
CREATE TABLE photos ( photoid serial PRIMARY KEY, path text, tags text[], location geography, meta jsonb ); INSERT INTO photos(path,tags,location, meta) VALUES ( '/foo/asdf.jpg', ARRAY['person', 'america', 'male'], ST_MakePoint(5.493,3.2948), '{"CAMERA":"NIKON"}'::jsonb ); SELECT * FROM photos WHERE tags @> ARRAY['person']; SELECT * FROM photos WHERE ST_DWithin(ST_MakePoint(0,0)::geography, location, 10000);