2013-01-16 151 views
1

座標我有一個JSON文件是這樣的:收集表中的字段(數據庫)

{ 
    "wijken": { 
     "11": { 
      "coords": "3.79073170001967,51.1717753664505,0 3.79020920176376,51.1723018883706,0 3.78989543642226,51.1729670713336,0 3.78983091856725,51.1736482209016,0 3.79035112720225,51.174896701853,0 3.79089521566258,51.1755715564749,0 3.7915999971046,51.1759188204827,0 3.79248490395883,51.1767623261609,0 3.79147318323356,51.1776832394604,0 ", 
      "id": "kml_1", 
      "fid": "0", 
      "wijziging": "Ja", 
      "nieuwnr": "11", 
      "naam": "Noordoost", 
      "wijk": "Kanaaldorpen en -zone", 
      "wijknr": "11", 
      "objectid": "1", 
      "area": "0", 
      "len": "0" 
     } 
... 

現在我想在我的數據庫加載這些數據。這適用於「id」和「wijk」。但是我怎樣才能將「coords」加載到我的表格字段中呢?

該領域的屬性是什麼? (decimal,int,...?)

+0

這適用於「id」和「wijk」 - 什麼可行? –

+0

什麼座標真的代表什麼?如果它包含更多的值,那麼你可以將它存儲在另一個表中,比如簡單的浮點數,並使用FK,比如'wijken_id',否則你可以使用簡單的文本列 – vlcekmi3

回答

1

您可以將coords作爲單個文本字段存放,也可以爲其創建單獨的表格。

+0

如果總是有相同數量的座標,你可以創建列coord1,coord2,..在你的表中,否則我會創建一個wijken_id和coord列的新表。 –

0

遵循數據庫規範化原則(更精確的first normal form),您應該具有您的字段的解剖結構,即每列應該負責表示單個值。

根據您的域每個座標可以是不同的列或甚至表內...

例如,如果你有一個域對象然後市表城市可能看起來像:

________________________________________________ 
|---|----------|-----------|------|------------| 
|id | latitude | longitude | name | population | 
|___|__________|___________|______|____________| 
  • 請注意以下原則適用於關係數據庫。
1

你使用了哪個數據庫?有些引擎(如MS SQL服務器)有自己的類型爲:GEOGRAPHY

如果你正在使用MySQL或PostgreSQL裏的常用方法是創建一個新的表,你可以在Google Maps API documentation看到:

CREATE TABLE `markers` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 
    `name` VARCHAR(60) NOT NULL , 
    `address` VARCHAR(80) NOT NULL , 
    `lat` FLOAT(10, 6) NOT NULL , 
    `lng` FLOAT(10, 6) NOT NULL , 
    `type` VARCHAR(30) NOT NULL 
) ENGINE = MYISAM ; 
0

什麼是DBMS?

如果您使用像MySQL這樣的關係數據庫管理系統,請將數據保存在文本字段中,並使用PHP implodeexplode函數來處理此數據。您也可以將它保存在另一個分離的表中,並在SQL查詢中調用JOIN表達式(藉助GROUP BYgroup_concat())來獲取數據。

如果您使用基於文檔的DBMS(如MongoDB),請隨時將coords字段另存爲float數組。