Php 处理类别和子类别MySQL或JSON

Php 处理类别和子类别MySQL或JSON,php,mysql,arrays,json,foreach,Php,Mysql,Arrays,Json,Foreach,我试图找到处理类别和子类别的最佳方法。我有20个类别和50个子类别。以下哪种方法是最好的方法: 将数据保存在json文件中,并直接在客户端读取内容 将数据库中的数据保存在单个表中,使用父id查看关系,并在同一数组的另一个foreach中的结果数组上使用foreach 将数据库中的数据保存在两个表中,一个sql调用父类别,另一个sql调用子类别,使用父id查看关系,并在父数组的另一个foreach中使用子类别数组的foreach 将数据库中的数据保存在两个表中,对父类别进行一次sql调用,然后在其

我试图找到处理类别和子类别的最佳方法。我有20个类别和50个子类别。以下哪种方法是最好的方法:

  • 将数据保存在json文件中,并直接在客户端读取内容

  • 将数据库中的数据保存在单个表中,使用父id查看关系,并在同一数组的另一个foreach中的结果数组上使用foreach

  • 将数据库中的数据保存在两个表中,一个sql调用父类别,另一个sql调用子类别,使用父id查看关系,并在父数组的另一个foreach中使用子类别数组的foreach

  • 将数据库中的数据保存在两个表中,对父类别进行一次sql调用,然后在其foreach中对数据库进行多次sql调用


  • 我试图找到处理类别的最佳实践,但找不到任何相同的文章。

    解决方案完全取决于数据库模式和其他实体与类别的关联程度。以及你打算如何阅读这些信息

    json方法会更快,但在需要链接到类别附加信息的查询时会出现问题

    我使用过的另一种性能良好的方法是将所有类别存储在一个表中。这些关系不存储在主表中

    另一个表将关系存储为图形边。如果在类别中有循环关系,这是非常有利的。或多个家长

    架构如下所示:

    类别(id、名称) 类别边(父对象id、子对象id)

    我使用我的实现来更快地获得关系查询。但这是MariaDB的问题,而不是mysql


    希望这能有所帮助。

    解决方案完全取决于数据库模式和其他实体与类别的关联程度。以及你打算如何阅读这些信息

    json方法会更快,但在需要链接到类别附加信息的查询时会出现问题

    我使用过的另一种性能良好的方法是将所有类别存储在一个表中。这些关系不存储在主表中

    另一个表将关系存储为图形边。如果在类别中有循环关系,这是非常有利的。或多个家长

    架构如下所示:

    类别(id、名称) 类别边(父对象id、子对象id)

    我使用我的实现来更快地获得关系查询。但这是MariaDB的问题,而不是mysql


    希望这能有所帮助。

    所以我想你是说第三种方法是这四种方法中最好的,创建两个表,然后根据它们之间的关系在php中生成数组。不一定。我很难在不清楚对应用程序其余部分的影响的情况下提出解决方案。但一般来说,猫坐在桌子上是有道理的。但我建议的解决方案不同于第三种选择。它以图形的形式实现了类别结构。所以我想你是说第三种方法是这四种方法中最好的,创建两个表,然后根据它们之间的关系在php中生成数组。不一定。我很难在不清楚对应用程序其余部分的影响的情况下提出解决方案。但一般来说,猫坐在桌子上是有道理的。但我建议的解决方案不同于第三种选择。它以图形的形式实现类别结构。