作者blu1121 (Big Brain)
看板PHP
標題[請益] update一問
時間Mon May 14 14:36:31 2012
小弟目前為公司寫個簡易程式,database中有二個table,
orders是訂單的table,customers是客戶的table,如下圖:
customer欄位 orders欄位
----------- -----------
|-cID | |-oID |
|-apply | |-apply |
|-... | |-cID |
| | |-... |
----------- -----------
假設目前customers中apply(申請者)有高雄與台南 兩筆客戶,cID分別是高雄1、台南2
但現在發現有個bug..
若在前端網頁上修改"高雄"客戶的訂單,將原本的apply:高雄更改為apply:台南,但
資料庫的orders table中的cID還是1,應該要2才正確。
想請問orders table中的cID我該如何下SQL指令,讓它如果有更改apply(申請者)時也
更新對應的cid呢? 感恩!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.202.49
1F:推 heartinside:所以customer的cid是可以重複的? 05/14 14:41
2F:→ heartinside:如果不重複的話...何不直接在orders上修改cid就好? 05/14 14:42
3F:→ heartinside:然後...如果沒有特殊考量的話.. 05/14 14:44
4F:→ heartinside:資料表可以做一下正規化... 05/14 14:44
5F:→ blu1121:我有考慮過直接修改orders的cid,不過有個問題是..使用者 05/14 14:46
6F:→ blu1121:也就是客戶他不知道自己的cid 05/14 14:46
7F:→ blu1121:p.s cID不能重複 05/14 14:47
8F:推 heartinside:所以客戶可以把自己的訂單修改給別人?!@@" 05/14 14:48
9F:→ heartinside:老實說我不是很瞭解問題的核心到底在哪Orz 05/14 14:49
10F:→ heartinside:請原諒我的駑鈍T_T 05/14 14:49
11F:→ blu1121:不好意思我說錯了,使用者是指訂單管理員 05/14 14:49
12F:推 heartinside:所以管理員可以把自己管理的訂單修改給其他管理員? 05/14 14:52
13F:→ blu1121:管理員可以修改訂單,上面的問題點是在如果當訂單的申請者 05/14 14:55
14F:→ blu1121:(apply)在新增訂單時key錯時可以經過修改再改回 05/14 14:56
15F:→ blu1121:不過碰到一個問題是,當更新apply(申請者)時原本的cid還是 05/14 14:57
16F:→ blu1121:原本當初新增訂單時的cid,我想在修改確認後更新相對應cid 05/14 14:58
17F:推 heartinside:所以每一個cid就代表一個客戶對吧? 05/14 15:00
18F:→ blu1121:是的 :) 05/14 15:00
19F:→ heartinside:我是指customer裡面的cid~另外orders的cid以及aplly 05/14 15:00
20F:→ heartinside:應該是和customer對應的沒錯吧? 05/14 15:01
21F:→ blu1121:恩~沒錯!! customers中的cID, apply同orders 05/14 15:02
22F:→ blu1121:只是orders中還有些欄位,因省略沒全部PO出 05/14 15:03
23F:推 heartinside:所以照理說一個客戶只有一個cid對吧? 05/14 15:07
24F:→ heartinside:所以要修改apply其實就是要把訂單修改給另外一個客戶? 05/14 15:07
25F:→ heartinside:那就繞回來了QQ..直接改orders的cid就可以了吧? 05/14 15:08
26F:→ blu1121:我有想過多弄一個網頁表單欄位,讓管理員直接輸入cID 05/14 15:10
27F:→ blu1121:不過當customers中apply(申請者)一多時,變得很麻煩 05/14 15:10
28F:→ blu1121:不知道您說直接改orders的cid是不是這意思^^" 05/14 15:11
29F:推 heartinside:其實cid程式這邊就可以處理掉了.管理員不需要知道cid 05/14 15:11
30F:→ heartinside:直接多一個欄位~可以讓管理者選這張訂單是哪個客戶的 05/14 15:12
31F:→ heartinside:我是指網頁的表單欄位QQ" 05/14 15:13
32F:→ blu1121:小弟大概知道您的意思,我試著加入一個下拉式選單看看 05/14 15:15
33F:→ blu1121:感謝您不厭其煩的回覆:) 05/14 15:16
34F:推 heartinside:別這樣說啦...一起討論討論~ 05/14 15:17
35F:→ heartinside:另外..下拉式算是急救用的...之後客戶一多會很刺激QQ 05/14 15:23
36F:→ blu1121:我都忘記客戶一多會有這問題,所以能在修改申請者後自行對 05/14 16:30
37F:→ blu1121:應才是最好解決方式@@ 05/14 16:30
38F:推 wannawanna:如果apply跟cid都表示客戶 為什麼不把cid當成key就好 05/14 20:06
39F:→ blu1121:wanna大~把cID當成key?不好意思小弟有點不太明白^^" 05/15 08:10
40F:→ blu1121:p.s: cID目前是設為客戶編號 05/15 08:11
41F:推 wannawanna:你可以去看看談正規化的書 如果apply和cid都能夠表示一 05/15 14:39
42F:→ wannawanna:個客戶 只需把cid當成pk就好 申請者應該就是某個客戶吧 05/15 14:41
43F:推 ck9472089:w大的意思應該是orders那邊不需要多一個apply~有cid就好 05/15 19:42