Online Shopping网上商城数据库设计
好,下面就是我設計的數據庫,和網上的現有的數據庫大同小異,因為基本的業務邏輯都是相同的。
?
?
注意:
這就是我設計的數據庫,大家看這張表salesitem,有一個字段叫unitprice(單價),很多人會說這是個冗余字段,是不需要的字段,是的,一開始我也是這么認為的,因為salesitem (訂單單項表)這張表是連接product(產品表),而且商品的單價在product表中已經存在,可以通過多表查詢來得到產品的單價,所以沒必要在salesitem表中,添加unitprice字段。
這也是我一開始設計的數據庫,然而,這也是一個漏洞非常嚴重的數據庫,在培訓中,通過和講師交流,我才恍然大悟,在salesitem表中添加unitprice字段,并且非常清楚這個字段具有非常重要的作用。
下面我講講這個字段的作用。
舉個例子吧:
如果沒有在salesitem表中添加unitprice字段,假設永輝超市一瓶可樂是3塊,一天早上從8點到9點之間賣出了10瓶,根據product上的記錄知道,可樂一瓶3塊,所以總計30塊。然而,如果這時候老板心血來潮,對所有員工說,從9點到10點,可樂一瓶漲一元,也就是4元一瓶,所以,后臺工作人員,必須修改數據庫中product表中的可樂的price,另它的值從原來的3改成4。假設在9點到10點之間,又一單價4元賣出了10瓶可樂。假設一天就賣出這20瓶可樂。
好了,精彩開始。
晚上打烊的時候,點帳的時候,根據20瓶可樂 x 每瓶的代價即可 = 可樂的總計價格。但是,如今每瓶的單價是4元,而早上8點到9點賣出的時候是每瓶3元,無形當中會發現,帳額不對,少了10塊錢,請問,這時候是不是要售貨員自己掏腰包?
?
?
而,如果在salesitem表中加入字段unitprice,即可以很清楚的分清早上8點到9點和9點到10點的可樂的單價,從而消除上述的問題。
?
?
?
綜上所述,數據庫設計必須在長期的訓練中慢慢形成,而且必須要與一定的生活經驗和行業背景,否則,設計出來的數據庫,會讓人哭笑不得。
謝謝。
總結
以上是生活随笔為你收集整理的Online Shopping网上商城数据库设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hibernate多对多映射拆成2个一对
- 下一篇: 学生成绩管理系统数据库设计