【问题标题】:converting a php array into a database schema将 php 数组转换为数据库模式
【发布时间】:2011-11-13 21:21:09
【问题描述】:

目前我将邻接存储在一个数组中的 php 文件中。这是它的一个示例:

$my_neighbor_lists = array(
1=> array(3351=> array (2, 3, 5 , 6, 10)),
2=> array(3264=> array (322, 12, 54 , 6, 10), 3471=>array (122, 233, 35 , 476, 210)),
3=> array(3309=> array (52, 32, 54 , 36, 210), 3469=>array (152, 32, 15 , 836, 10)),
etc

我想基本上将其迁移到数据库中。关于我应该有多少张桌子的任何建议?我在这里看三张桌子。

【问题讨论】:

  • 这些数字是什么意思?他们是 id 吗?
  • 你指的是哪个号码?内部数组是时间间隔/成本,因此 (2, 3, 5, 6, 10) 表示在时间间隔 0 成本为 2,时间间隔 15 成本为 3(每 15 分钟划分),依此类推 1= > array (3351 => ........ 表示存在从节点1到3351的路径
  • 您必须更新您的问题,提供有关问题背景的更多详细信息以及对阵列的清晰描述。

标签: php database database-design


【解决方案1】:

两个表:

 1. vertices (id)
 2. edgecost (idfrom, idto, time, cost)

【讨论】:

  • 那么如果我这样做的话就会有重复,对于每个 idfrom - idto 总是有 15 个与之相关的成本
  • 我知道idfrom-idto-time是唯一的,但是idfrom-idto会有多次重复
  • 那又怎样?这就是您的数据结构所代表的 - 多边图。如果你像我说的那样存储它,你就可以直接在 SQL 中选择顶点边权重条件。例如@ 987654322@ ORDER BY ec.cost ASC - 查找与 [startvertice] 相邻的所有顶点可在 [mintime] 内到达。如果您为您的任务提供更多详细信息,例如您使用该结构进行的典型查询是什么,我们可以制定更合适的方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 2021-12-28
  • 2010-10-24
相关资源
最近更新 更多