2013-01-16 85 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数组。