[請益] update一問

看板PHP作者 (Big Brain)時間13年前 (2012/05/14 14:36), 編輯推噓10(10033)
留言43則, 4人參與, 最新討論串1/1
小弟目前為公司寫個簡易程式,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

05/14 14:41, , 1F
所以customer的cid是可以重複的?
05/14 14:41, 1F

05/14 14:42, , 2F
如果不重複的話...何不直接在orders上修改cid就好?
05/14 14:42, 2F

05/14 14:44, , 3F
然後...如果沒有特殊考量的話..
05/14 14:44, 3F

05/14 14:44, , 4F
資料表可以做一下正規化...
05/14 14:44, 4F

05/14 14:46, , 5F
我有考慮過直接修改orders的cid,不過有個問題是..使用者
05/14 14:46, 5F

05/14 14:46, , 6F
也就是客戶他不知道自己的cid
05/14 14:46, 6F

05/14 14:47, , 7F
p.s cID不能重複
05/14 14:47, 7F

05/14 14:48, , 8F
所以客戶可以把自己的訂單修改給別人?!@@"
05/14 14:48, 8F

05/14 14:49, , 9F
老實說我不是很瞭解問題的核心到底在哪Orz
05/14 14:49, 9F

05/14 14:49, , 10F
請原諒我的駑鈍T_T
05/14 14:49, 10F

05/14 14:49, , 11F
不好意思我說錯了,使用者是指訂單管理員
05/14 14:49, 11F

05/14 14:52, , 12F
所以管理員可以把自己管理的訂單修改給其他管理員?
05/14 14:52, 12F

05/14 14:55, , 13F
管理員可以修改訂單,上面的問題點是在如果當訂單的申請者
05/14 14:55, 13F

05/14 14:56, , 14F
(apply)在新增訂單時key錯時可以經過修改再改回
05/14 14:56, 14F

05/14 14:57, , 15F
不過碰到一個問題是,當更新apply(申請者)時原本的cid還是
05/14 14:57, 15F

05/14 14:58, , 16F
原本當初新增訂單時的cid,我想在修改確認後更新相對應cid
05/14 14:58, 16F

05/14 15:00, , 17F
所以每一個cid就代表一個客戶對吧?
05/14 15:00, 17F

05/14 15:00, , 18F
是的 :)
05/14 15:00, 18F

05/14 15:00, , 19F
我是指customer裡面的cid~另外orders的cid以及aplly
05/14 15:00, 19F

05/14 15:01, , 20F
應該是和customer對應的沒錯吧?
05/14 15:01, 20F

05/14 15:02, , 21F
恩~沒錯!! customers中的cID, apply同orders
05/14 15:02, 21F

05/14 15:03, , 22F
只是orders中還有些欄位,因省略沒全部PO出
05/14 15:03, 22F

05/14 15:07, , 23F
所以照理說一個客戶只有一個cid對吧?
05/14 15:07, 23F

05/14 15:07, , 24F
所以要修改apply其實就是要把訂單修改給另外一個客戶?
05/14 15:07, 24F

05/14 15:08, , 25F
那就繞回來了QQ..直接改orders的cid就可以了吧?
05/14 15:08, 25F

05/14 15:10, , 26F
我有想過多弄一個網頁表單欄位,讓管理員直接輸入cID
05/14 15:10, 26F

05/14 15:10, , 27F
不過當customers中apply(申請者)一多時,變得很麻煩
05/14 15:10, 27F

05/14 15:11, , 28F
不知道您說直接改orders的cid是不是這意思^^"
05/14 15:11, 28F

05/14 15:11, , 29F
其實cid程式這邊就可以處理掉了.管理員不需要知道cid
05/14 15:11, 29F

05/14 15:12, , 30F
直接多一個欄位~可以讓管理者選這張訂單是哪個客戶的
05/14 15:12, 30F

05/14 15:13, , 31F
我是指網頁的表單欄位QQ"
05/14 15:13, 31F

05/14 15:15, , 32F
小弟大概知道您的意思,我試著加入一個下拉式選單看看
05/14 15:15, 32F

05/14 15:16, , 33F
感謝您不厭其煩的回覆:)
05/14 15:16, 33F

05/14 15:17, , 34F
別這樣說啦...一起討論討論~
05/14 15:17, 34F

05/14 15:23, , 35F
另外..下拉式算是急救用的...之後客戶一多會很刺激QQ
05/14 15:23, 35F

05/14 16:30, , 36F
我都忘記客戶一多會有這問題,所以能在修改申請者後自行對
05/14 16:30, 36F

05/14 16:30, , 37F
應才是最好解決方式@@
05/14 16:30, 37F

05/14 20:06, , 38F
如果apply跟cid都表示客戶 為什麼不把cid當成key就好
05/14 20:06, 38F

05/15 08:10, , 39F
wanna大~把cID當成key?不好意思小弟有點不太明白^^"
05/15 08:10, 39F

05/15 08:11, , 40F
p.s: cID目前是設為客戶編號
05/15 08:11, 40F

05/15 14:39, , 41F
你可以去看看談正規化的書 如果apply和cid都能夠表示一
05/15 14:39, 41F

05/15 14:41, , 42F
個客戶 只需把cid當成pk就好 申請者應該就是某個客戶吧
05/15 14:41, 42F

05/15 19:42, , 43F
w大的意思應該是orders那邊不需要多一個apply~有cid就好
05/15 19:42, 43F
文章代碼(AID): #1FiAVo6m (PHP)
文章代碼(AID): #1FiAVo6m (PHP)