0

所以我過去一週的問題是如何構建我的庫存系統。我試圖編寫一個數據庫來跟蹤各種不同的IT相關項目的每個小細節,包括但不限於.....每個製造商的基於Windows的筆記本電腦,蘋果筆記本電腦,基於Windows的臺式機,蘋果臺式機,Iphone,機器人手機,黑莓手機,打印機設備,服務器設備等等。我還會加入汽車,摩托車和其他許多隨機物品,我有一個生意,我可以買賣任何可以賺錢的東西。我需要數據庫進行庫存/資產管理,銷售跟蹤以及客戶/業務關係。我從各種不同的來源爲不同的價格提供庫存。我試圖做的是帶來很多,分配很多號碼,測試和盤點每件物品跟蹤LotNumber,Tester。尋找這個庫存系統的最佳結構

私募基金投資//有時我有很多其他企業在

  • 股份InvesterID
  • BUSINESSNAME

供應商//我會在其他的東西添加比如電話號碼,地址和其他東西。

  • 供應商ID
  • SupplierName

PurchaseLot

  • LotID
  • 日期
  • 成本
  • Invester_InvesterID
  • Supplier_SupplierID

  • TesterID
  • 名稱//後來有一次,我創建一個登錄將僱員

監視器

  • MonitorID
  • 尺寸
  • 型號
  • 廠商
  • Tester_TesterID
  • PurchaseLot_PurchaseLotID
  • ETC //觸發插入添加MonitorID到庫存而產生均勻的庫存編號系統。

筆記本

  • LaptopID
  • 廠商
  • 模型
  • 串行
  • Tester_TesterID
  • PurchaseLot_PurchaseLotID //觸發刀片添加LaptopID到我庫存創建一個統一的庫存編號系統。

庫存

  • InventoryID
  • Monitor_MonitorID
  • Laptop_LaptopID

這是我的基本表結構。真正的問題是這是做這件事的最好方法還是會造成更大的頭痛?我打算做什麼,我爲不同類型的物品,平板電腦,手機,筆記本電腦,臺式機等創建表格後,我可能必須將不同的物品分解爲零件進行轉售,因爲並非所有物品都可以修復,因此必須創建一個零件表。我還會通過分配一個貨架號來追蹤貨物在倉庫中的位置,後者將不得不擴展到跟蹤多個倉庫,業主,業務(一年內)。如果有更簡單的方法,請告訴我。我希望儘可能簡單直接,因此可以很容易地編寫多個PHP腳本來處理不同的任務,包括在網站上出售。我也不知道如何處理同一個項目的多個項目,特別是因爲同一檯筆記本電腦的多個可以分解成10個以上不同的部分,需要跟蹤。任何建議或煽動都會很好。爲了概述我在這方面的經驗,我基本上是複製和粘貼國王。我已經創建了一些與他們的PHP對應的數據庫來處理客戶關係。但是,這是迄今爲止最大也最雄心勃勃的項目,實際上僅僅是爲了我的業務的適當可持續增長的必然性。

+0

我建議添加一些類似'lastUpdated'的列,以便更準確地清除您的庫存的軌跡 – zxc

+0

歡迎來到SO。請閱讀[常見問題]和[問]以瞭解這裏適合的問題類型。不幸的是,對數據庫設計的完整評論對於SO來說過於廣泛。你可以在[dba.se]上運氣更好 –

+0

其實這只是DB的一小部分。也許我的問題不夠簡潔? – DcHerrera

回答

0

正如@Jim Garrison暗示的,你在這裏提出一個非常寬泛的問題,所以我不能提供一個答案,只有一些需要考慮的指針。對每種產品使用一張表的方法,以及將所有類型的產品結合在一起的表本質上是脆弱的,並且不可能擴展。原因包括:

  1. 是否每個庫存項目都有一個顯示器和一個鍵盤?
  2. 當您將平板電腦添加到廣告資源時,您會做什麼?
  3. 您是否期望庫存表隨時間而擴展,幷包含許多空值,因爲它會擴展?

我建議,有需要在你的應用程序至少包括以下三個表

  1. 項目 - 這是通用於所有項目包含的信息 - 而且可能包括投資者和供應商的標識。
  2. 項目類型 - 包含此項目的信息(例如)平板電腦;以及有關平板電腦的特定信息。
  3. 組件 - 頂級項目以及(例如)平板電腦隨附的OTG電纜的標識。該表格需要表示變量和未知深度的層次結構。

除組件表外,還可能需要類似的層次結構「associated_with」。

這會導致比您提出的更復雜的方法,但我不相信您可以提供您需要的功能並保持簡單。

HTH。

+0

這完美地回答了我的問題。 – DcHerrera

相關問題