2010-11-17 64 views
0

我目前正在滾動自定義訂單處理系統。我目前的結構非常標準,發票,採購訂單和物品都保存在不同的表格中。通過跟蹤表單的id,項目知道他們在哪個表單上,但表單不知道它們中的項目(在數據庫中)。這一切都很好,直到我有一個新的要求加入混合:庫存訂單。有趣的數據庫體系結構方案

庫存訂單的工作方式是有時客戶下單的訂單多於庫存,因此我們希望向我們的供應商下單以滿足訂單並補充庫存。但是,我們通常不得不建立這些訂單,因爲最低價格非常高,因此一個庫存訂單通常由多個客戶訂單組成(有時針對同一個項目),並添加一些未連接到訂單的訂單項,並且只是用於放養目的。

這給我當前的架構帶來了一個問題,因爲我現在需要跟蹤庫存訂單中的內容,因爲供應商經常會發送部分訂單,已分配項目以及哪些入庫項目用於庫存。

我最初的想法是創建一個大多數模仿項目表的新數據庫表,但有點像聚合(但未計算)的表,只記錄項目及其相應的元數據(接收了多少個單元,股票數量等)僅用於存貨訂單。如果從其中一個變化(如數量),我將不得不保持兩個表同步。

這是矯枉過正,也許有更好的方法來做到這一點?數據庫架構絕對不是我的專長,所以我希望有人可以告訴我這是一個好方法來做事,或者有更好,更正確的方法來做到這一點。

非常感謝!

對於它的價值,我使用的是什麼:VB,.NET 4.0中,MySQL 5.0

另外,如果你想在任何澄清,請諮詢!我將密切關注這個問題。

回答

2

訪問databaseanswers.com。導航到「免費數據模型」,並查找「庫存管理」。你應該找到一些很好的例子。

+0

謝謝!這是非常有趣的東西! – Jason 2010-11-18 19:58:39

0

你沒有提到他們,但你需要的表爲: 供應商,訂單和庫存

也,你提到「寂寂」基表 - 這可能需要聯想式的多對多表,告訴你之類的東西哪些項目是其順序,以及哪些供應商供應哪些項目,交貨時間,成本等

這將是有益的,看看你的實際模式。

+0

謝謝,是的,我有一個供應商和訂單表...我絕對應該把我的庫存分成它自己的獨立表格。現在它是在產品桌上捎帶的。我有成本,哪個供應商供應哪些物品,但我們從不知道交貨時間。謝謝! – Jason 2010-11-17 22:14:13

0

我使用單個文檔表格,並帶有DocType字段。客戶文件(訂單,發票,形式,交貨,信用票據)與供應商文件(採購訂單,接待)混合在一起。
這使得它很容易計算客戶端缺貨,供應商缺貨等... 我只是有點不高興,因爲我有供應商和客戶不同的表,因此DOCUMENTS表具有SupplierId字段和ClientId字段,這有點不好。如果我不得不重做它,我可能會考慮包含客戶端和供應商的單個公司表。

我使用PK(DOCID)這是自動增量,和唯一的密鑰(DocNum)這跟XYY00000,與
X =文檔類型
YY =年
00000 =增量。
這是因爲可以保存文檔,但僅在驗證時收到DocNum。

要跟蹤延期交貨(供應商或客戶),您需要在DocDetails表中有一個分組字段,以便如果您有訂單行12345,則將該鏈接字段複製到與其相關的每個明細行(發票, 交貨)。
希望我不會混淆。事情很好,3年以上,超過50,000個文檔。

0

這種方法也意味着你將有一個股票持有,這是爲訂單分配 - 沒有單獨的項目跟蹤它有點棘手來管理這個。考慮,顧客A的訂單

3 pink widgets 
1 blue widget 

但你只有在股票1只粉紅色的小工具 - 您訂購三級粉紅色的小部件,1個藍色。

B客戶訂單

2 pink widgets 

但你仍然只得到了在股票1 - 你爲了另一個粉紅色的小部件

3只粉紅色的小部件從第一供應商的順序到達。你會怎樣做?您可以保留所有這些用於客戶A的訂單,並等待藍色和紅色小工具到達,或者您可以完成客戶B的訂單。

如果粉紅色小部件的提前期爲3天,而藍色小部件爲3周,該怎麼辦?您是否向客戶發送部分訂單?你有持有的股票數量的限制嗎?

只是保留一個新的延期交易表是不夠的。

這東西真的很快變得可怕複雜。你當然需要花更多時間分析問題。

+0

感謝您的回答...我意識到訂購過程的複雜性。當你有很長的缺貨時間時,它確實很可怕。通常我們在庫存物品時帶入的物品是很多的,所以說我們有2個單位的存貨和3個單位,我們會從工廠訂購20個單位。你有什麼解決辦法? – Jason 2010-11-18 19:54:10