目前的關連圖如下圖
相關資料表如下:
spec(訂單)中目前顯示如下
我想要查詢訂單的結果不是上圖中的關連數字
而是要顯示smain.mspec中的中文名稱
sql語法應該如何下.....
我想從另個角度來看這個問題:資料庫規劃。
由發問人提供的DB結構來看,這是一個失敗的資料庫結構,才會導致發問人的問題,如何把id和產品名稱關聯,而其間又沒有關聯鍵可供使用。
資料庫規劃的基本技巧是正規化,但正規化不是萬能,不能把正規化當作惟一準則,你不忘了還有反正規化的規則,發問人的資料庫就是正規化太過頭,以一致資料零碎化,最後,一個訂單處理的功能都完成不了。
訂單處理在不少談資料庫設計的書裹都會談到,也有規劃範例,我就不詳談了。
也因此,我要說,以這個資料庫的規劃,要從訂單兜到smain的資料,很難,也很不好做。不如重新規劃資料庫,把資料重新建構,還比較快。
資料庫設計的原則是要讓前端應用系統能夠很方便容易地存取資料,在這個原則下來進行資料庫規劃。
而不是死抱著正規化的幾條原則把資料拆解就完事。
資料庫規劃真的很重要,
我在寫新的專案的時候,
都會先了解清楚需求,
然後才開始思考怎麼去規劃資料庫,
能夠達成正規化,
又能夠取得資料,
這是第一步,
之後還有效率的問題,
資料量大的時候,
會導致查詢變慢,
又需要重新修改資料庫的一些結構,
(不過通常一開始規劃好的話,應該只需要新增就可以了)
就是從這個過程當中去學習的...