使用一对多关系创建MySQL 5.0查询/视图

时间:2012-12-07 11:19:26

标签: mysql json pdo

我有一个MySQL 5.0数据库,其中包含以下架构:

Database schema

我在Web应用程序中使用它,对服务器/单词进行ajax调用,我使用PDO查询数据库并返回json。我的目标是得到这样的结果:

[ //array of words
{
"word": "...",
"fonetics": "...",
...
"meanigngs":[] // array of meanings (objects)
"inflections":[] // array of inflections
"examples":[]
},
...
]

实现这一目标的一种方法是多次查询数据库,每个表用于每个表,然后在php中使用json结构。我知道这不是很好,但我主要是前端人员,而且我对MySQL知之甚少。 我还在考虑创建一个构成所需表格的视图。

你能引导我找到最佳解决方案,或者甚至编写一段mysql来创建视图/从数据库中获取所需的数据吗?

1 个答案:

答案 0 :(得分:0)

如果您需要所有数据,并希望以您描述的方式在对象层次结构中构建数据,那么在应用程序级别执行此操作可能是您的最佳选择。确保按word_id对表进行排序,以便您可以从查询结果中的连续行中获取子数组的值。

替代方案包括:

  • 为每个子数组查询一次数据库。这将使构建结构变得更加容易,并且可能减少客户端中的内存消耗,但这会导致更多的查询。如果你这样做,那么一定要去准备好的陈述!
  • 通过连接表创建一个大视图。这会大量复制数据,特别是当您在相当不相关的表之间包含完整的交叉产品时,例如意义与变形之间的每一种结合等等。绝对不是这里的路线。
相关问题