亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

把業務邏輯變成數據結構和SQL語句的例子。自然

系統 1734 0

?

??? 更正:和大家交流了一下,發現現在就叫做架構有一點大,還是叫做框架更準確一些,就叫做 自然框架 吧。

??? 目前自然框架的內容包括三個部分:使用自定義控件快速實現增刪改查和導出Excel、通用權限、個性化設置。

?

??? 上一篇里? 球球 ?同學詢問“ 不太明白需求是怎么轉化為數據庫的。比如一個最簡單的會員例子,累計1萬消費以上是一級會員,5000消費以上是2級會員,買商品屬于1級會員的8折,屬于2級會員的9折,這個業務邏輯要怎么轉化成數據庫?” 那我就以這個作為例子說一下吧。

?

???? 根據這個需求我們可以得到以下幾個已知條件
1、有會員信息——會員表。
2、會員要有等級,建立一個會員等級表。
3、會員的等級是依據累計消費金額而定。5000元以上是二級會員,10000元以上是一級會員。
4、有產品信息——產品表。
5、會員購買產品可以享受折扣,折扣根據會員的級別而定。

?

??? 問題
1、會員級別的確定?
2、如何獲得會員購買商品的折扣?

我們可以在數據庫里面建立四個表:【會員表】、【會員等級表】、【產品表】、【會員享受的折扣表】。
【示意圖】。

?

?

?

(這里的商品表怎么還有商品等級ID呢?折扣表里面也有?這個后面的需求擴展里面的,本來要做兩套圖的,俺就偷懶了)

?

??? 回答
1、會員級別是依據會員的消費累計金額來確定的,那么當前的會員消費金額就是已知條件,我們可以把它作為函數的參數,于是我們可以寫一個函數:

?

private ? int ?SetMemberLevelID( int ?memberID, int ?money)
????????{
????????????DataAccessLayer?dal?
= ? new ??DataAccessLayer();
????????????
????????????
// 依據累計的消費金額,確定會員的等級
????????????sql? = ? " SELECT?TOP?1?會員級別ID?FROM?Demo_會員級別表?WHERE?(消費金額?<? " + ?money? + " ) " ;
????????????
string ?會員級別ID? = ?dal.RunSqlGetID(sql);

????????????
// 修改會員的等級
????????????sql? = ? " update?Demo_會員表?set?會員級別ID?=? " ? + ?會員級別ID? + ? " ?where?memberID=? " ? + ?memberID.ToString();
????????????dal.RunSql(sql);

????????????
????????}

?

?

??? 當然我們也可以把第一個SQL語句作為一個子查詢,加在第二個SQL語句里面。
??? 或者如果我們可以知道會員原先的級別的話,我們可以先做一下比較,會員級別變化的時候在修改會員的等級。

?

2、這個就簡單了,會員享受的折扣是和等級相關的,我們有了會員享受的折扣表,寫一條SQL語句就出來了。

?

sql? = ? " select?折扣?from?Demo_會員級別折扣表?where?會員級別ID?=?1 " ;

?

?

??? 不知道這個是不是求求想要的。

?

??? 功能擴展

???? 這個會員折扣的例子,讓我想起來了去年看的一篇帖子,和這個很像,區別在于商品也是分等級的,不同的會員等級對應不同的產品等級可以享受不同的折扣,比如會員有三個等級——一級、二級、三級,產品有兩個等級——優等、一般。
那么就會出現一個笛卡爾乘積的形式:


一級會員購買優等商品享受九折,
一級會員購買一般商品享受八折,
二級會員購買優等商品享受九五折,
二級會員購買一般商品享受八五折,
三級會員購買優等商品享受九九折,
三級會員購買一般商品享受九折。

?

??? 以前的那個帖子的要求就是如何依據會員的等級和商品的等級來判斷享受的折扣。

??? 我們看看如何來解決這個問題。我們的商品表里面加上商品等級字段,在【會員享受的折扣表】里面也加上一個商品等級ID字段。剩下的就不用說了吧,只需要稍稍改一下那個SQL語句就可以了。

?

sql? = ? " select?折扣?from?Demo_會員級別折扣表?where?會員級別ID?=?1?and?商品級別ID?=?1 " ;

?

??? 如果您也看多那篇帖子的話,您會發現那篇帖子用了好長的代碼才解決,當然人家是用了OO的方法,好像解決的還挺巧妙地,我的OO水平還不夠,沒有看懂。

?

FAQ

1、為什么要建立【會員等級表】、【商品等級表】?
???? 因為建立表以后,就可以做一個維護程序讓客戶自己維護這兩個級別。

2、為什么要建立【會員享受的折扣表】?
??? 理由同上,我們也可以做一個維護程序,這樣享受什么樣的折扣,客戶就可以隨時修改了。

?

ps: 博客園北京俱樂部第三次技術活動(2009/05/23) ?

?

把業務邏輯變成數據結構和SQL語句的例子。自然架構改成自然框架


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本精品高清一区二区2021 | 欧美日本综合 | 国产极品福利 | 国产123区| 欧美国产亚洲一区二区三区 | 青青91视频| 在线日韩麻豆一区 | 国产视频日本 | 久久综合久久综合久久 | 亚洲精品视频在线观看免费 | 亚洲精品国产一区二区在线 | 中文字幕一区二区三区有限公司 | 国产成人免费不卡在线观看 | 亚洲狠狠成人综合网 | 国产精品久久久久久免费播放 | 狠狠色噜噜狠狠狠狠黑人 | 91在线播| 久久久噜噜噜久久 | 五月久久婷婷综合片丁香花 | 久草经典视频 | 欧美日韩亚洲精品国产色 | 热久久99精品这里有精品 | 精品国产第一国产综合精品gif | 国产成人精品本亚洲 | 一区二区三区在线观看免费 | 伊人97在线| 精品国产_亚洲人成在线高清 | 尤物视频在线观看视频 | 国产精品伦理一区二区三区 | 四虎国产精品永久一区 | 午夜激情网站 | 香蕉视频国产 | 免费看一级黄色录像 | 天天草夜夜 | 私人影院免费观看 | 日韩欧美成人免费中文字幕 | 全免费一级午夜毛片 | 九九热视| 十大黄色免费网站 | 特级无码a级毛片特黄 | 国产精品毛片久久久久久久 |