加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – 树状类别系统的数据库设计

发布时间:2021-04-03 09:31:16 所属栏目:MySql教程 来源:网络整理
导读:我正在使用邻接列表模型来创建类别,它完美地运行. 当检索特定类别的物品(例如电子产品)时,我还想检索子类别中的物品(例如电子设备 相机,或甚至电子设备 相机 相机镜头). 我现在这样做的方法是从数据库中提取电子子类别的所有类别ID,并查找此列表中包含catego

我正在使用邻接列表模型来创建类别,它完美地运行.

当检索特定类别的物品(例如电子产品)时,我还想检索子类别中的物品(例如电子设备 – >相机,或甚至电子设备 – >相机 – >相机镜头).

我现在这样做的方法是从数据库中提取电子子类别的所有类别ID,并查找此列表中包含category_id的所有文章.

这在我看来非常低效和耗时,因为这可能导致许多查询检索这些子类别.

我想到这样做的另一种方式是让每篇文章与整个类别树相关联(例如关于相机镜头的文章也将与MANY_MANY表中的相机和电子类别相关联),当我检索电子产品中的所有文章时,它将也出现了.

这会为数据库添加大量冗余数据,因为我可能需要为每篇文章存储3或4个类别.此外,它会使诸如将文章移动到另一个类别之类的操作复杂化.

这是正确的方法吗?或者有没有更好/更简单的方法,我没有想到?

任何帮助赞赏!

最佳答案 阅读本文关于嵌套集建模:Managing Hierarchical Data in MySQL.

使用建议的技术,您可以在一个SELECT中获得整个树或子树.它比“正常”方法复杂一点,但如果您要从表中进行大量读取,这是完全值得的.

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读