黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

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

系統(tǒng) 2192 0

?

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

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

?

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

?

???? 根據這個需求我們可以得到以下幾個已知條件
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 " ;

?

?

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

?

??? 功能擴展

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


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

?

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

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

?

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

?

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

?

FAQ

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

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

?

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

?

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


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論