我已经建立了一些产品数据库,但我从未对数据库的效率感到真正满意。我最好的方法是有一个产品表、一个类别表和一个关系表,即:
产品表:
id product_name data
1 Some prod More info...
2 Another prod Even more...
类别表:
id parent_id cat_name
1 0 Main cat 1
2 1 Sub cat 1
3 1 Sub cat 2
4 3 Sub sub cat 1
5 0 Main cat 2
关系表:
id prod_id cat_id
1 1 2
2 1 4
3 2 5
etcetera...
这样可以快速轻松地检索产品,也可以轻松地将一种产品分配给多个类别。
然而,创建类别列表的结构并不像我想的那么简单。首先,我需要循环主类别,然后相应地循环所有子级别。我只喜欢显示分配了产品的类别,但是如果子级别包含产品,我当然还需要显示所有父类别。这导致大量查询、连接和条件例程来呈现当前类别。我想知道是否有更有效的结构方法来解决这个问题?你不需要写我的代码我只是想知道可能有什么样的更好的原则?