Database-Recommendation

地理數據應用程序的數據庫選擇

  • August 3, 2017

我正在編寫一個客戶端-伺服器應用程序,其中地理標記的照片是主要內容。

後端基於 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);

引用自:https://dba.stackexchange.com/questions/170870