台灣最大程式設計社群網站
線上人數
1272
 
會員總數:245132
討論主題:189038
歡迎您免費加入會員
討論區列表 >> PHP >> 請問針對每一位新客戶,對公司每一種產品,員工都能輸入其個別價格的處理方式
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問針對每一位新客戶,對公司每一種產品,員工都能輸入其個別價格的處理方式
價值 : 100 QP  點閱數:666 回應數:6

樓主

志明 版主
初學者
72 111
1666 152
發送站內信

公司一開始把客戶分成金,銀,白金三個類別,針對公司的各類產品(各個品牌的投影機),依客戶類別來訂價。

但是現在公司覺得把客戶分成三個類別不夠,要改成 "每一個新的大客戶都要有自己個別的類別",也就是要有相對應的價位欄位讓員工輸入(沒輸入的話就顯示白金會員的價位).

我的處理方式是這樣,當員工建立新的客戶資料,會有一個Checkbox (Create Price Field for this vendor?),若員工打勾,就會建立一個新欄位 Vendor123Price (假設Vendor ID 是123) (ALTER TABLE products ADD $vendorPrice double),也就是"products" table 裡將會有 "Vendor124Price", "Vendor125Price" 等新欄位,針對每一種產品和每一個客戶來訂價.這部份己完成.

我的問題是,當員工建立新的價格欄位,我要如何在既有的底下報表裡,自動加入所有這些新建立的 VendorXXXPrice 欄位呢?

ProductID, Manufacturer,Cost,Gold,Silver,Platium,Vendor123Price,Vendor124Price,Vendor125Price .....
1,BenQ,50,70,80,90,61,62,63
2,Acer,40,60,70,80,51,52,53
3,.........






搜尋相關Tags的文章: [ 個別價格 ] ,
本篇文章發表於2016-09-01 06:05
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

志明
檢舉此回應
報表頁的程式如下,原則上就是 "products" table 再inner join 幾個相關 table







本篇文章回覆於2016-09-01 08:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
你可以先用 mysql_fetch_field 。先取得所有的欄位名稱。
借此預先區分相關的欄位並將建立的多餘欄位給增加處理。

再安排到你的程式內。

ps:雖然知道你這是舊程式。但還是要提點你一下。未來php將不會在支援mysql的函式集了。
要注意。
本篇文章回覆於2016-09-01 09:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
如果是我的話
我會新增一張表單,有三個欄位,商品主鍵、會員主鍵、該會員購買該商品的價格
會員登入後,商品展示價格先抓這張表,找不到對應資料再抓白金的價格
後台輸入時,每個商品點進去都有一張表,列出所有的會員(從會員表),和會員價格(從新表)
本篇文章回覆於2016-09-01 10:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

志明
檢舉此回應
浩瀚星空,謝謝您的答覆.我把原來頁面的欄位部份保持不變,用 mysqli_fetch_field 成功的加入了所有Vendorxxx價格的欄位 (直接就接在原來欄位最後一個</td>之後),如下.

但我不知道怎麼繼續把這些新Vendorxxx每一row的值列出來 (因為我原程式己經有捉每一row的值 ($row_inventsearch = mysql_fetch_assoc($inventsearch); )),不知怎麼接在一起,能否指點一下.謝謝.



迷路,謝謝您的意見.我有想過這樣,這樣有輸入的價格才會進入您提到的新增表單,而且主表單(Products)也不會有過多欄位,且大部份會是Null值.但不知若改成像您建議的這樣,是否執行速度加快或是還有別的考量? 謝謝.
本篇文章回覆於2016-09-01 14:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
在我的認知中,樓主的需求屬於多對多的資料連結,每個會員對每個商品
以資料結構的優化來說要拆成,一對多和多對一兩個資料連結,也就是我建議的多做一個中繼表單

好處跟考量嗎?
一方面,我的做法只有需要的時候才會產生資料,而樓主的做法無論是否另外設定會員專屬價格,資料欄位都會存在並且佔據空間
在資料筆數少時可能看不出來,但是假設有上千筆商品資料加上幾萬個會員時,就會產生可觀的空間浪費
另一方面,樓主的做法會無限的增加商品的欄位數目,在後續維護時可能會造成極大的不便
最後,對於後面要接著維護系統的人來說,看到那一望無際的商品資料欄位,可能會昏過去.......
本篇文章回覆於2016-09-02 09:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
基本上~~~我的做法也是跟迷路大同小異
主資料表就給他固定的欄位。
再用一個次資料表來處理

其中次資料表又分一對一的模式。
也就是一筆資料對應一筆子表資料。
這方式其實跟你目前用的方式是大同小異。
但好處是有需要才去做載入就好。可降低其使用量。
缺點當然就是跟你目前的一樣,未來可能會有無限的欄位出現。不容易維護,也很容易有超多的空值欄位。

另外一種是屬於一對多的模式。也是利用子表。
子表內有主id跟次id相互交集。
這樣子的做法其缺點是,程式需要改變。要先做額外載入的動作處理。也就是需要事先讀取是否有額外值的情況發生。
但優點是不太容易有太多無用的空資料。且自由性也比較高。群組搭配上比較強。

基本上,會使用第一種方式。大多式欄位性質久久增加一個。且是大部份的資料需要取用的情況下。
我才會用第一種。

但色大多數,像這種未定數的副屬資料。我還是會偏向用第二種方式來處理
本篇文章回覆於2016-09-06 10:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.