你有两个假设表:具有多对多数据字段的查询生成表,最佳实践?
TABLE 1
[id] [item] [amount] [cost]
1 hat 20 10
2 shoe 7 45
3 belt 2 25
TABLE 2 (many to many)
[item] [color]
hat blue
hat red
hat yellow
shoe black
shoe white
etc. etc.
,当你运行一个查询,您要输出,包括所有的数据都像这样的列表:
[ITEM] [AMOUNT] [COST] [AVAILABLE COLORS]
hat 20 10 blue, red, yellow
shoe 7 45 black, white
etc.
如果颜色不目前,它将是一个查询来从一个表中获取所有信息并在循环中处理该数组。但是,以适应TABLE 2
我能想到的两种方法可以做到这一点:
蛮力:运行查询,为每一个回归得到的数据从TABLE 2
,加逗号,并从TABLE 1
插入到结果阵列,然后输出HTML表格
丑陋的解决方法:添加一个新列Table 1
并定期与数据串从Table 2
幕后
...有一个更好的办法,仅次于更新?
哦!我*喜欢*在一个大型查询中剥离Table2然后让PHP完成所有分组和插入的想法。显然没有想到这一点!非常感谢你! – Drew 2010-02-22 06:32:46
不客气:-) ;;这是我用过几次的解决方案;从O(n)查询到O(常量)往往感觉很好^^ *(当然,不要忘记分析这两种解决方案 - 但通常较少的查询更好)* – 2010-02-22 06:37:24