第三正規化後不能應付例外情況,怎麼辦? |
尚未結案
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
大大們, 以 Access 或 MS Sql Server 內附的範例資料庫 NorthWind 為例,
如果有家貿易公司建了一個跟 NorthWind 一模一樣的資料庫,並且使用中,
而有一天,一位散客登門光顧,但因購貨太多,無法自己帶走,需要公司於指定日其代為送貨。 顧客下了訂金,公司員工要輸入訂單資料,發現訂單資料表的客戶編號為外鍵,參考到客戶資料表的客戶編號,由於這位客人在客戶資料表中並沒有登錄,所以員工無法在訂單中輸入客戶編號,但訂單資料表裡面除了客戶編號之外,並沒有建立任何其他跟客戶有關的資料,員工就無法馬上輸入客人的名稱、地址或電話等等跟送貨有關的資料。 如果員工不把資料輸入到訂單資料表,略過訂單這一關,以手工方法直接填寫送貨單,那麼這位客人的購貨紀錄就無法紀錄在資料庫裡面,而老闆以後如果希望跟這位客人有更多生意往來,就無紀錄可查。 但如果員工為每一位來光顧的散客都建立客戶編號,那會造成客戶資料表中只有比例很少的客戶是經常往來的客戶,搞不定客戶資料表有一萬筆客戶資料,
但只有一百位客戶是經常下訂單的,其餘都是"一次客戶"。 如果一開始建立資料庫時,就把客戶資料表跟訂單資料表合拼為一,那麼這個問題就得到解決,但是,這又無法享受資料庫正規化所帶來的好處。 這種情形該怎麼辨?
|
scotthsiao
高階會員 發表:13 回覆:324 積分:147 註冊:2005-02-01 發送簡訊給我 |
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
scotthsiao大大, 您提供的方法很直覺,不過,這會有點怪怪的,因為現在一般公司的送貨單都是印刷廠印好的一式三份或四份的格式,上面已經印好一些每張出貨單都會有的共同東西,例如 "公司名稱","電話","收貨人" 等等,真正的公司名稱、電話等等,會由報表程式自動填上。如果給散客的出貨單裡面的公司名稱、收貨人等等欄位全部空白,而只有備註欄有相關的客戶資料,客戶會覺得很奇怪,而且送貨的人會以為那是發票的寄送地址,有些出貨單真的如此,當中有兩個地址,一個是送貨地址,一個發票地址,如果送貨地址沒有印在固定的位置,送貨人員會不好搞,尤其是公司是委託宅配公司送貨的話,那就更麻煩。 而更重要的是,散客的銷售紀錄沒有出現在訂單資料表裡面,必須要再調閱紙張印出來的出貨單存底一張一張地看,才能找到某位散客的購貨情況。
|
scotthsiao
高階會員 發表:13 回覆:324 積分:147 註冊:2005-02-01 發送簡訊給我 |
|
cxh17895
初階會員 發表:13 回覆:37 積分:25 註冊:2003-03-19 發送簡訊給我 |
你的想法就有點矛盾!!
文中有句話
''員工不把資料輸入到訂單資料表''
又寫到
’而老闆以後如果希望跟這位客人有更多生意往來,就無紀錄可查。’ 依老闆的角度想,可能會比較好! 不想建立散客資料,又想查詢消費記錄??
如果想長期追蹤,怎能不建資料呢?? 想法簡單一點,只要是客戶,一律建資料,
那我請教你!如果客戶只有報價,卻沒有訂購?是否還有建檔? 比較仔細作法還是要建檔,因為有報價記錄,可以報價單轉訂購單, 現在電腦容量大,速度快,用不著再用10年前的想法來開發系統哦! 你參考!
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
scotthsiao大大, 我寫了程式去呼叫 Rave 報表來列印出貨單,程式會展示出訂單資料表,表中有一個 Boolean 欄位,使用者會用滑鼠點選想要列印的出貨單,選好後,按"列印",就會列印出所選取的出貨單。
[訂單表]中以客戶編號去[客戶表]裡面查出客戶的名稱、地址、電話等相關資料。我可以在[客戶表]建立一個編號為 0 的客戶編號,以代表所有散客,並且
不填上其餘相關資料,報表程式也會列印出散客的訂單,只是名稱、地址、電話等等都是空白,自己再手寫填上去就好。再把散客資料記錄在別的地方。
但這樣做,以後會查不出來這些客戶編號為 0 的訂單是哪個客戶。
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
|
scotthsiao
高階會員 發表:13 回覆:324 積分:147 註冊:2005-02-01 發送簡訊給我 |
|
cxh17895
初階會員 發表:13 回覆:37 積分:25 註冊:2003-03-19 發送簡訊給我 |
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |