【问题标题】:MYSQL - Store an array of URL's in a tableMYSQL - 将一组 URL 存储在表中
【发布时间】:2011-10-10 11:44:51
【问题描述】:

我需要将数据存储在 Mysql 表中,以允许我导出 json 数据,如下所示:

[
  {
    "xxxx_identifier" : "XX_xxxxs_xxxx",
    "xxxx_title" : "Xxxxx Xxxxx",
    "xxxx_thumb" : "xxx_xxxxs_xxxx",
    "xxxx_download_url" : "http://xxxx",
    "xxxx_price" : x.xx,
    "xxxx_badgemessage" : "xxx",
    "xxxx_previews" : [
      "http://xxx/xxx.zip",
      "http://xxx/xxx.zip",
      "http://xxx/xxx.zip"
    ]
  }
]

我正在使用 'json_encode($arr);'创建一个json数据。

我将如何存储上述字段的网址:“xxxx_previews” 我希望能够添加任意数量的网址。

我似乎找不到任何指针,除了连接两个表可能是答案 - 但不知道该怎么做。

非常感谢。

【问题讨论】:

  • 您可以通过序列化将数组数据存储到字符串中。肮脏,但可能会为您完成这项工作。请参阅php.net/serialize(请注意,您将只存储一大块数据,实际上这不是管理数据的格式)。

标签: php mysql arrays json


【解决方案1】:

在关系型、规范化的数据库模型中,连接表是可行的方法:

table RESOURCE
    xxxx_identifier /* primary key */
    xxxx_title
    ...

table URL
    xxxx_identifier /* foreign key to RESOURCE */
    url             /* the URL */

【讨论】:

  • 谢谢。那么假设它不会是对 json_encode($arr) 的简单单次调用? $rs = mysql_query("SELECT * FROM xx_xxx LIMIT 0, 30");
    while($obj = mysql_fetch_object($rs)) { $arr[] = $obj; } echo json_encode($arr);
  • @markturnip:我不明白你的意思。请使用您在上述评论中提供的代码 sn-p 更新您的问题...
【解决方案2】:

将包含与其 url 对应的操作项的列添加到您将添加 url 的表中。

创建表 { 标识符, 网址 }

【讨论】:

    【解决方案3】:

    您可以使用类似于以下的结构创建 2 个表:

    1. 第一个表和你的表一样,只是 xxxx_previews 是第二个表的外键。

    2. 这个表有 3 个字段,一个是 ID(每个条目唯一的主键) previewID(这将允许您将第一个 DB 中的条目链接到这个)和 URL(这个将包含您要添加的 URL)。

    您可以简单地编写一个 php 脚本,读取 xxxx_previews,然后在第二个表中搜索与 xxxx_previews 匹配的 previewID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      相关资源
      最近更新 更多