【发布时间】:2023-04-04 21:34:02
【问题描述】:
我正在使用邻接列表模型来创建类别,并且效果很好。
在检索某个类别(例如电子产品)中的文章时,我还想检索子类别(例如电子产品->相机,甚至电子产品->相机->相机镜头)中的文章。
我现在的做法是从数据库中提取电子产品子类别的所有类别 ID,并在此列表中查找所有具有 category_id 的文章。
在我看来,这似乎非常低效且耗时,因为这可能会导致许多查询来检索这些子类别。
我想到的另一种方法是让每篇文章与整个类别树相关联(例如,关于相机镜头的文章也将与 MANY_MANY 表中的相机和电子产品类别相关联),当我检索所有文章时电子产品也会出现。
不过,这会在数据库中添加大量冗余数据,因为我可能必须为每篇文章存储 3 或 4 个类别。此外,它还会使诸如将文章移至另一个类别之类的操作复杂化。
这是正确的方法吗?还是有我没有想到的更好/更简单的方法?
任何帮助表示赞赏!
【问题讨论】:
-
你现在的做法听起来非常好,尤其是与你描述的第二种方法相比。
标签: mysql database-design