处理类别和子类别MySQL或JSON

时间:2016-05-22 11:12:02

标签: php mysql arrays json foreach

我正在努力寻找处理类别和子类别的最佳方法。我有20个类别和50个子类别。以下哪种方法最好:

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

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

  3. 将数据保存在两个表的数据库中,对父类进行一次sql调用,另一次调用子类,并使用父id查看关系,并在父数组的另一个foreach中使用fore子数组。 / p>

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

  5. 我试图找到处理类别的最佳做法,但找不到相同的文章。

1 个答案:

答案 0 :(得分:0)

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

json方法会更快,但在涉及到要求您链接到类别附加信息的查询时会遇到问题。

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

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

架构看起来像:

类别(id,name) category_edges(parent_id,child_id)

我在我的实现中使用oqgraph来更快地获得关系查询。但这是与MariaDB而不是mysql。

希望这有帮助。