表字段中的坐标集合(数据库)

时间:2013-01-16 12:40:26

标签: php javascript sql database json

我有一个像这样的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”加载到我的表格字段中?

该领域的特性是什么? (十进制,整数,......?)

4 个答案:

答案 0 :(得分:1)

你可以将coords作为单个文本字段,或者你可以为它创建一个单独的表。

答案 1 :(得分:1)

您使用的数据库是什么?某些引擎(如MS SQL Server)有自己的类型: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 ;

答案 2 :(得分:0)

遵循数据库规范化原则(更准确first normal form),您应该拥有字段的解剖结构,即每列应该负责表示单个值。

根据您的域名,每个坐标可以位于不同的列甚至表格中......

例如,如果您有一个域对象City,则表City可能类似于:

________________________________________________
|---|----------|-----------|------|------------|
|id | latitude | longitude | name | population |
|___|__________|___________|______|____________|
  • 请注意以下原则适用于关系数据库。

答案 3 :(得分:0)

你是什么DBMS?

如果您使用像MySQL这样的关系型DBMS,请将数据保存在文本字段中,并使用PHP implodeexplode函数来操作此数据。您还可以将其保存在另一个单独的表中,并在SQL查询中调用JOIN表达式(在GROUP BYgroup_concat()的帮助下)以获取数据。

如果您使用像MongoDB这样的基于文档的DBMS,请随意将coords字段保存为float数组。