線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:508
推到 Plurk!
推到 Facebook!

進銷存系統, 庫存的設計

答題得分者是:leveon
weiliching
初階會員


發表:53
回覆:78
積分:31
註冊:2003-12-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2016-08-16 00:15:39 IP:180.177.xxx.xxx 訂閱
設計到現在~有關進銷存的庫存設計~我目前設計了幾種方式
1. 每次進貨與出貨, 刪除修改, 去修改物料基本檔的 庫存欄位, 算是一個按鈕一個按鈕的寫.此方式最麻煩~常常忘了有那些按鈕.需要更動庫存

2. 每次進貨..就在出庫的Table ,順便新增一個出貨資料,並用 某個欄位來確定他是否已經出貨,剛新增時為N, 如果要出貨後~就把此欄位設定成Y,
此欄的去抓 N 就是庫存

以上兩個方是都是不動資料庫的方式

據之目前好像還有Trigger , 或是ClientDataSet 兩種方式,
請個位大大以設計經驗~那一種方式比較好?

一直想改成Trigger 的方式~不知道是否有範本?

B,RGds
Vincent wei
leveon
資深會員


發表:30
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2016-08-16 17:09:33 IP:1.171.xxx.xxx 訂閱
這個議題應該不只侷限在進銷存商業軟體,搞不好一些線上遊戲的計算邏輯比商業軟體還複雜
小型的系統採用Trigger 是很不錯的 ,分別對新增 刪除 修改等事件去做對應的資料處理 ,再加上transaction 應該可以很穩固
中大型的系統 用Trigger 就不合適了 ,應要設計成可以擴充的資料庫 讀取和寫入是不同台的資料庫
,也要設計成容易replication,所有的操作都會留下紀錄,系統再根據這些紀錄去批次排程要更新計算的目標欄位,厲害一點的還可以
依照紀錄將整個資料回朔到任何時間點,

目前有不少Cloud DB,個人認為 NOSQL會比SQL還要多人使用 ,原因並非不需要SQL強大的語法功能,而是考慮到擴充性,需要複雜的計算
就只能自己硬幹,所以結論就是對資料庫內建的功能依賴越多,初期當然開發比較簡單快速,但日後就越難擴充,也無法離開該品牌的資料庫
,程式一但龐大也很難抽象
回到你的問題要用Trigger 還是ClientDataset這要看你要做怎樣的系統,不想過分依賴DB的,未來想擴充就用 ClientDataset,想簡單開發
,不用管前端是delphi還是ASP還是APP網頁啥的的就用Trigger ,沒有甚麼絕對好壞 只有場景的選擇



===================引 用 weiliching 文 章===================
設計到現在~有關進銷存的庫存設計~我目前設計了幾種方式
1. 每次進貨與出貨, 刪除修改, 去修改物料基本檔的 庫存欄位, 算是一個按鈕一個按鈕的寫.此方式最麻煩~常常忘了有那些按鈕.需要更動庫存

2. 每次進貨..就在出庫的Table ,順便新增一個出貨資料,並用 某個欄位來確定他是否已經出貨,剛新增時為N, 如果要出貨後~就把此欄位設定成Y,
此欄的去抓 N 就是庫存

以上兩個方是都是不動資料庫的方式

據之目前好像還有Trigger , 或是ClientDataSet 兩種方式,
請個位大大以設計經驗~那一種方式比較好?

一直想改成Trigger 的方式~不知道是否有範本?

B,RGds
Vincent wei
系統時間:2017-11-22 20:33:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!