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

使用一对多关系创建MySQL 5.0查询/视图,mysql,json,pdo,Mysql,Json,Pdo,我有一个MySQL 5.0数据库,其模式如下: 我在一个web应用程序中使用它对服务器/words进行ajax调用,在这里我使用PDO查询数据库并返回json。我的目标是得到如下结果的json: [//单词数组 { 字:。。。, 方尼蒂:…,。。。, ... meanings:[]//意义对象数组 拐点:[]//拐点数组 示例:[] }, ... ] 实现这一点的一种方法是多次查询数据库,每次查询一个表,然后在php中处理json结构。我知道这不是很好,但我主要是前端人员,我对MySQL知之甚少

我有一个MySQL 5.0数据库,其模式如下:

我在一个web应用程序中使用它对服务器/words进行ajax调用,在这里我使用PDO查询数据库并返回json。我的目标是得到如下结果的json:

[//单词数组 { 字:。。。, 方尼蒂:…,。。。, ... meanings:[]//意义对象数组 拐点:[]//拐点数组 示例:[] }, ... ] 实现这一点的一种方法是多次查询数据库,每次查询一个表,然后在php中处理json结构。我知道这不是很好,但我主要是前端人员,我对MySQL知之甚少。 我也在考虑创建一个包含所需表的视图


您能给我介绍一下最佳解决方案吗?或者甚至可以编写一个mysql来创建视图/从数据库中获取所需数据吗?

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

替代办法包括:

为每个子数组查询一次数据库。这将使构建结构更加容易,并可能减少客户机中的内存消耗,但会导致大量查询。如果你这样做,那么一定要准备好陈述! 通过连接表创建一个大视图。这将大量复制数据,特别是因为您将包含完全不相关的表之间的叉积,例如含义和屈折变化之间的每个组合等等。绝对不是这里的路线。