今天分享乙個小型電商系統的資料庫**欄位的資料型別設計。附上通用四捨五入轉換方法
我們知道,**字段使用的型別,最佳的有兩個,分別為:decimal,money;而money小數部分只能精確到4位,雖然money在記憶體上是比decimal少那麼乙個位元組,但是現在硬碟那麼大,不用計較了。
個人喜歡,我全部直接用decimal(18,5),小數部分我直接用了5位;
但是對於乙個商品來說,我最多隻會用到兩位小數,百分比也只會用到4位,5位的只能是更小的佣金比例計算。
但我覺得這樣算起來的數,小數實在是太小了,既然針對小型電商來說,我覺得只要兩位就足夠了,
所以我引入了一些概念,
1、針對提現金額的手續費不採用標準的四捨五入,保留兩位小數。
2、針對佣金提成的手續費也不採用標準的四捨五入,保留兩位小數。
3、要使用者交錢的四捨五入,只要第三位小數有值,直接往第二位進1,目的就是要使用者多交錢。
3、要商家交錢的四捨五入,不管第三位小數是否有值,都不進1,目的是要商家少交錢。
好了,有了這些基礎後,我直接整個資料庫設計儲存的**值佣金值都採用保留兩位小數進行儲存,雖然使用decimal(18,5)會有3個多餘的0,這裡我直接用乙個方法進行切割,反正是沒值的。
而對於百分比的,直接不變,都是採用五位小數。
下面我提供我換算的方法:
//////四捨五入計算類
/// public
class
round
//////
標準四捨五入,結果保留兩位小數
/// public
static
decimal roundforstandard(string
money)
//////
針對使用者的四捨五入,結果保留兩位小數
///要使用者交錢的四捨五入,目的就是要使用者多交錢
/// public
static
decimal roundforuser(string
money)
else
}//////
針對商家的四捨五入,結果保留兩位小數
///要商家交錢的四捨五入,目的是要商家少交錢
/// public
static
decimal roundformerchant(string
money)
//////
固定點的轉換,可將小數後面多餘的零去掉
///這個不固定保留多少位小數
/// public
static
decimal fixed(string
money)
", money));
}}
軟體工程電商系統資料庫定義 電子商務資料庫
電子商務系統資料庫 引言現在網上購物已經成為一種流行趨勢。根據電子商務購物的基本流程,電子商務管理資訊應用系統由由以下功能模組組成 1.後台管理員管理模組 實現產品錄入 訂單檢視和公告管理等功能。2.使用者管理管理模組 實現購買商品管理。3.商品購物管理模組 使用者購買商品。專案介紹 電子商務系統的...
小型資料庫的查詢
dim objrs as new recordset,objcn as new connection,strsql as string strsql select from 表 where 字段 like trim text with objcn provider sqloledb connecti...
小型資料庫的選擇
小型資料庫的選擇 一直使用sql server開發,沒有用過access之外其它的db。最近正想做個理財工具,這種小東西當然不可能用sql server資料庫啦,可又不想用access,於是想起在blog中看到關於小型資料庫的文章,收集如下資料 據稱,在國外,需要使用客戶端資料庫的情況中,有30 左...