2011-01-19 65 views
1

大家好我正在開展一個學校項目,對於我的項目,我選擇創建一個可以處理重複訂單的電子商務系統。這是爲了我的最後一個項目,我將在五月與計算機科學的同事一起畢業。經常性訂單

請記住,這不是最終的解決方案,它基本上是這個數據庫設計的起點。

對業務流程的一些背景。
- 客戶將訂購產品,並在結賬時指定它是一次性訂單還是每週/每月訂單。
- 客戶將指定接收訂單的位置(該位置僅針對訂單)
- 如果訂單的價值> 25.00,則接受該訂單的價值,否則將被拒絕。
- 這將填充在後端的orders_test和order_products_test表分別

  • 人都會有對交付基於這兩個表的一天生成報告。
  • 他們將能夠打印出來,它會生成什麼項目到什麼位置的列表。 根據以下標準。
  • date_of_next_scheduled_delivery =當前日期
  • remaining_deliveries> 0
  • 一旦他們滿意的遞送列表,他們將按下「過程交貨」按鈕。
  • 從remaining_deliveries如下
  • 減去1這將調整order_products_test表
  • 插入當前日期爲date_of_last_delivery_processed
  • 基於DELIVERY_FREQUENCY(即一次,每週,每月),它將改變date_of_next_scheduled_delivery
  • 狀態值在order_products_test表中可以是主動,保持或取消,已過期

我只是想一些意見,如果我是在做g正確或者如果我應該抓住這個方法並重新開始。

回答

0

的一點想法,但不一定是完整(有很多你的問題,但希望這些點幫助):

  • 我不認爲你需要跟蹤剩餘交付。您只有2個選項 - 一次性訂單或經常性訂單。在這兩種情況下,計算剩餘交貨都沒有意義。它從來沒有槓桿。

  • 在跟蹤下一個交貨日期方面,您可以跟蹤訂單的當天。如果它反覆出現 - 每月或每週,不管 - 從第一次約會開始,所有事情都可以計算出來。大多數數據庫系統(MySQL,SQL Server,Oracle等)都支持綽綽有餘的日期計算靈活性,以便您可以即時計算這一點,而不是維護這種已知的計劃。

  • 如果交貨地點只針對訂單,我認爲沒有必要爲其創建一個單獨的表格 - 它在功能上依賴於訂單,您應該將其保存在與訂單相同的表格中。對於大多數電子商務系統而言,情況並非如此,因爲他們傾向於將交貨地點列表與帳戶相關聯,當您多次訂購時(例如,亞馬遜),它們會提示您。

  • 鑑於上述情況,我敢打賭你可以放棄上面4張表中的2張 - 賬戶和訂單。但是,如果交付地點與賬戶相關聯,我確實會將其解決。 (但你的問題上面沒有提示)

  • 不要用「_test」後綴命名你的表 - 這很容易混淆。