你有兩個假設表:具有多對多數據字段的查詢生成表,最佳實踐?
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