iT邦幫忙

0

直接顯示購買的產品名稱

  • 分享至 

  • xImage

目前的關連圖如下圖

https://ithelp.ithome.com.tw/upload/images/20190309/20045511awCxCu3pvH.jpg

相關資料表如下:
https://ithelp.ithome.com.tw/upload/images/20190309/20045511KgYxo89pEM.jpg

https://ithelp.ithome.com.tw/upload/images/20190309/20045511i4ab1AsYZz.jpg

https://ithelp.ithome.com.tw/upload/images/20190309/20045511x6yvm2jBA8.jpg

https://ithelp.ithome.com.tw/upload/images/20190309/20045511XOTLef2xP2.jpg

spec(訂單)中目前顯示如下
https://ithelp.ithome.com.tw/upload/images/20190309/20045511ShKYakUbVb.jpg

我想要查詢訂單的結果不是上圖中的關連數字
而是要顯示smain.mspec中的中文名稱
sql語法應該如何下.....

看更多先前的討論...收起先前的討論...
slime iT邦大師 1 級 ‧ 2019-03-09 10:11:34 檢舉
select b.name from b
join a on b.id = a.id
join orderlist on a.orderid = orderlist.orderid
ghost234 iT邦新手 4 級 ‧ 2019-03-09 10:23:20 檢舉
在資料表spec中,並沒有pk或fk關連至其它資料表
只有記錄買了哪些零件
剛也試了一下大大的sql
但代不進去......
我也不懂你的spec資料表,到底哪個欄位是代表smain.mspec的名稱對應~
雖然一堆數字,但至少你也要明確指出是哪個欄位吧~
CalvinKuo iT邦大師 7 級 ‧ 2019-03-12 08:59:14 檢舉
我不是很懂,只是跟產品有關的不是要編個料號(要有編碼原則)當KEY,不是用品名當KEY吧....
訂單我覺得也要分單頭(客戶)跟單身(產品)...
建議看看其他進銷存系統的資料庫如何規畫吧。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

4
賽門
iT邦超人 1 級 ‧ 2019-03-09 11:53:10

我想從另個角度來看這個問題:資料庫規劃。
由發問人提供的DB結構來看,這是一個失敗的資料庫結構,才會導致發問人的問題,如何把id和產品名稱關聯,而其間又沒有關聯鍵可供使用。
資料庫規劃的基本技巧是正規化,但正規化不是萬能,不能把正規化當作惟一準則,你不忘了還有反正規化的規則,發問人的資料庫就是正規化太過頭,以一致資料零碎化,最後,一個訂單處理的功能都完成不了。
訂單處理在不少談資料庫設計的書裹都會談到,也有規劃範例,我就不詳談了。
也因此,我要說,以這個資料庫的規劃,要從訂單兜到smain的資料,很難,也很不好做。不如重新規劃資料庫,把資料重新建構,還比較快。
資料庫設計的原則是要讓前端應用系統能夠很方便容易地存取資料,在這個原則下來進行資料庫規劃。
而不是死抱著正規化的幾條原則把資料拆解就完事。

1
小魚
iT邦大師 1 級 ‧ 2019-03-09 16:21:41

資料庫規劃真的很重要,
我在寫新的專案的時候,
都會先了解清楚需求,
然後才開始思考怎麼去規劃資料庫,
能夠達成正規化,
又能夠取得資料,
這是第一步,
之後還有效率的問題,
資料量大的時候,
會導致查詢變慢,
又需要重新修改資料庫的一些結構,
(不過通常一開始規劃好的話,應該只需要新增就可以了)
就是從這個過程當中去學習的...

我要發表回答

立即登入回答