You are on page 1of 126

TRNG I HC KHOA HC T NHIN KHOA CNG NGH THNG TIN B MN H THNG THNG TIN

HLTKNHUNG-01

H thng MuaVoucher

M nhm: 15 SVTH:

Trn Duy Minh 1241081 Nguy n Phm Hong Anh 1241003 Hunh Phng Duy 1241017

TpHCM 2013.

H Qun Tr C S D Liu

1 STT

Phn cng cng vic Cng vic 1241081 1241003 1241017 % Hon thnh 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 x 100 x x 100 100 GV nhn xt

C s d liu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Usecase M hnh ER M hnh ha chc nng Thit k CSDL Nhp liu Ci t Store Procedures Tm kim cc trng hp li truy xut ng thi Ci t Transaction cho cc trng hp li truy xut ng thi Gii quyt vn li truy xut ng thi x x x x x x x x x x x x x x x x x x x x x x x x x x

Giao din:
Tm kim template trang ch Tm kim template admin v doanh nghip Thit k template trang ch Thit k template admin v doanh nghip Tm kim hnh nh Voucher

Admin:
ng nhp ng xut i mt khu Qun l Voucher (xem danh sch voucher dang hot ng v ngng hot ng, cp nht, xa) Qun l Th np (xem danh sach th cha np v th c np,thm, cp nht t l khuyn mi) Qun l Doanh nghip (Xem danh sh hp ng v thm hp ng) Qun l n hng (Xem danh sch thanh ton, n hng tr sau v cp nht trng thi n hng tr sau)

19

20 21

Doanh nghip:
22 23 24 25 ng nhp ng xut i mt khu Qun l Voucher (thm voucher, xem danh sch voucher dang hot ng, ngng hot ng, cp nht t gi khuyn mi) Xem thng tin hp ng (ht hn, cn thi hn) x x x x 100 100 100 100 x 100 x x x x x x x x x 100 100 100 100 100 100 100 100 100 2

26

Khch hng:
27 28 29 30 31 32 33 34 35 ng k ng nhp i mt khu Xem thng tin c nhn Voucher, xem chi tit voucher Tm kim (theo tn, gi) Xem gi hng Thanh ton Xem lch s mua hng

H Qun Tr C S D Liu

36 37 2 STT

Np th Xem lch s np th Phn bo co: Ni dung % Hon thnh

x x

100 100

MSSV tham gia

GV nhn xt

Ln 1 1 M t h thng Ln 2
2 Thit k m hnh ER V lc c s d liu Cc mi quan h trong lc ER M t lc c s d liu M t rng buc ca c s d liu 100 1241081 1241003 1241017 1241081 1241003 1241017 1241081 1241003 1241017 1241081 1241003 1241017 1241081 1241003 1241017 1241081 1241003 1241017 1241081 1241003 1241017

100

1241081 1241003 1241017

100

100

100

100

Ln3
7 M t th tc c a h thng Ln 4 8 M t, ci t x l tnh hung tranh chp ng thi v Deadlock Ln 5 Ton b bo co - Script CSDL - Script tranh chp - Script Fix l i - ng dng demo - Quay phim demo
Phn tnh hung truy xut ng thi Ni dung % Hon thnh MSSV tham gia GV nhn xt

100

100

100

1241081 1241003 1241017

3 STT

1 2

Admin v Doanh Nghip cng cp nht gi khuyn mi trn 1 sn phm ti 1 thi im. Hai khch hng cng mua 1 sn phm

100 100

1241081 1241003 1241017


3

H Qun Tr C S D Liu

10

11

v cp nht s lng s n phm cn l i. Admin cp nht t l khuyn mi khng hp l v b hy giao tc trong khi khch hng n p th c mnh gi trng vi mnh gi admin cp nht nn c d liu rc ca Admin. Admin thc hin cp nht voucher (gi KM) nhng khng hp l v b hy giao tc - khch hng thanh ton v c d liu rc do admin cp nht v lu vo n hng. Hai khch hng cng np 1 th np t i 1 thi im => c 2 u np c v thng tin khch hng np th ca khch hng u tin b mt Khch hng tm kim 1 sn phm nm trong khong gi bt k, cng lc doanh nghip thm 1 sn phm mi c gi n m trong khong gi khch hng tm kim. Khch hng tm kim sn phm theo tn cng lc doanh nghip thm 1 voucher c tn cha chui tm kim ca khch hng. Doanh nghip xem danh sch cc hp ng k kt cng lc Admin thm mi 1 hp ng k kt vi doanh nghip trn. Doanh nghip xem danh sch hp ng ht thi hn, cng lc Admin kch hot li 1 hp ng ht hn ca doanh nghip trn. Khch hng tm kim sn phm nm trong khong gi bt k cng lc admin ch nh sa gi ca 1 voucher n m trong khong gi m khch hng ang tm. Hai khch hng cng np th ti cng 1 thi im, nhng ch c mt khch hng c tin trong ti khon, khch hng cn li th thng bo np thnh cng nhng li khng c tin trong ti khon.
Phn chc nng h thng Ni dung

100

1241017

100

1241003

100

1241003

100

1241081

100

1241081

100

1241081

100

1241003

100

1241017

100

1241017

4 STT

% Hon thnh

MSSV tham gia

GV nhn xt

1 2 3

ng nhp ng k Xem chi tit voucher

100 100 100

1241017 1241017 1241017


4

H Qun Tr C S D Liu

4 5 6 7 8 9

Xem danh sch Deal hm nay Xem danh sch Deal gn y Tm kim Voucher Xem thng tin c nhn Np th i mt khu ng xut Xem lch s np th Xem gi hng Thanh ton Xem lch s mua hng Qun l Voucher (thm, xa, sa) Qun l Hp ng (thm, sa) Qun l Th np (thm, cp nht t l khuyn mi) Qun l n hng (cp nht)
Phn nng cao Ni dung

100 100 100 100 100 100

10 11 12 13 14 15 16 17 18
5 STT 1 2

100 100 100 100 100 100 100 100 100


% Hon thnh

1241017 1241017 1241017 1241017 1241017 1241017(KH) 1241003(AD) 1241081(DN) 1241017(KH) 1241003(AD) 1241081(DN) 1241017 1241017 1241017 1241017 1241003(AD) 1241081(DN) 1241003(AD) 1241081(DN) 1241003(AD) 1241003(AD)
MSSV tham gia GV nhn xt

H Qun Tr C S D Liu

MC LC
1 PHM VI H THNG ..................................................................................................................7 1.1 1.2 1.3 2 Gii thiu .................................................................................................................................7 Phm vi nghip v ....................................................................................................................7 Qui nh ca h thng...............................................................................................................7 Danh sch chc nng ...............................................................................................................9 M t chi tit chc nng .........................................................................................................10 Lc c s d liu .............................................................................................................20 M t c s d liu .................................................................................................................20 Rng buc ca c s d liu ...................................................................................................35 M t th tc ca h thng......................................................................................................46 M t tnh hung tranh chp ng thi ...................................................................................46 M t gii php x l ..............................................................................................................65 M t cu trc ng dng ....................................................................................................... 103 Tnh hung tranh chp ng thi .......................................................................................... 105 B d liu test cc tnh hung ............................................................................................... 118

M T CHC NNG H THNG .............................................................................................9 2.1 2.2

M T C S D LIU............................................................................................................20 3.1 3.2 3.3

M T TNH HUNG TRANH CHP NG THI..............................................................41 4.1 4.2 4.3

NG DNG DEMO.....................................................................................................................77 5.1 5.2 5.3

TNG KT ................................................................................................................................ 126

H Qun Tr C S D Liu

1 PHM VI H THNG
1.1 Gii thiu

Mc tiu ca h thng MuaVoucher l mang li nhng sn phm v dch v tuyt vi, gim gi ln n 90% cho cc thnh vin ca MuaVoucher v cho cng ng ti Thnh ph H Ch Minh. MuaVoucher ch lm vic vi cc doanh nghip ln m bo rng nhng sn phm v dch v m MuaVoucher cung cp l rt tt. V bn, MuaVoucher c th cung cp nhng sn phm tuyt vi vi gi tht r.
1.2 Phm vi nghip v

- Cc khch hng c ng k ti khon min ph trn h thng ca MuaVoucher. Ngoi ra, cn c cung cp cc chc nng gn gi d s dng c th t do la chn cc voucher yu thch - H tr thanh ton tr trc qua h thng np th Voucher gip khch hng nng ng hn trong vic thanh ton. - m bo cht lng sn phm , MuaVoucher ch s k hp ng vi doanh nghip ln v qun l doanh nghip cht ch , ng thi cung cp cho doanh nghip chc nng qun l nhng Voucher sn phm ca chnh mnh cung cp linh hot hn trong khu qun l
1.3 Qui nh ca h thng

- Khch hng v doanh nghip phi ng nhp vo h thng mi c th s dng cc chc nng nm trong phm vi ca mnh - Cc thng tin c nhn ca khch hng v doanh nghip phi ng s tht , nu khng mi mt mt v pha khch hng MuaVoucher s khng chu trch nhim - thanh ton tr trc , s d trong ti khon khch hng phi ln hn tng s tin thanh ton trong gi hng - Khi mun hy khch hng phi gi trc tip ln MuaVoucher thng bo hy - Khch hng nn kim tra gi hng k lng trc khi thanh ton , mi thiu st n hng do s sut pha khch hng MuaVoucher s khng gii quyt - Doanh nghip khi mun ng qung co sn phm th phi ln trc tip cng ty MuaVoucher k hp ng v ng k thng tin doanh nghip
H Qun Tr C S D Liu

- Sau khi hp ng c xt duyt ,mi doanh nghip s c 1 ti khon duy nht do MuaVoucher cung cp - Mi thng tin sn phm c ng phi c qua kim nh s tht, nu c sai st g v pha doanh nghip th mi n b pha doanh nghip s phi chu trch nhim theo nh hp ng nu.

H Qun Tr C S D Liu

2 M T CHC NNG H THNG


2.1 Danh sch chc nng:

uc Primary Use Cases

Qun l Voucher Doanh Nghip Thay i mt khu

Qun l th np ng nhp

Thay i thng tin c nhn

Qun l n hng

Admin Ngi dng

Mua Voucher

Thanh ton ng k Khch Hng

Xem lch s mua hng Np th Xem lch s np th Xem thng tin Voucher

H Qun Tr C S D Liu

2.2 M t chi tit chc nng

Chc nng ng K:
o Mc tiu: khch hng nu mun mua voucher trn MuaVoucher phi ng k tr thnh thnh vin ca MuaVoucher. o Ngi dng: Khch hng (ngy sinh ca ca khch hng khng c trc 01/01/1900 v sau ngy h in ti) o u vo: Tn ng nhp: mi khch hng c mt tn ring khi ng nhp vo h thng. Password (mt khu): c di t 6 k t tr ln c phn bit ch hoa, ch thng, cc k t c bit tng tnh bo mt. Nhp li Password: xc nh xem khch hng tht s nhp ng password t trc cha. Trnh tnh trng khch hng sau khi ng k xong li qun password. H v tn: khch hng nn nhp ng tn trong CMND . Ngy sinh: h thng s kim tra ngy sinh ca khch hng,ngy sinh ca ca khch hng khng c trc 01/01/1900 v sau ngy hin ti Gii tnh Chng minh nhn dn (CMND) in thoi: khch hng nn nhp chnh xc s in thoi ca mnh nu bn c mun mua hng trn MuaVoucher, trong trng hp h thng khng gi mail xc tht n hng c. Email: khch hng nhp ng a ch email ca mnh h thng c th gi mail xc nhn n hng cng nh cp nhp cc Voucher mi cho khch hng khi tr thnh thnh vin. o u ra: Hin th thng bo ng K thnh cng cho php ngi dng ng nhp vo h thng.

H Qun Tr C S D Liu

10

o Cc bc thc thi: Bc 1: Ngi dng vo trang ch ca MuaVoucher Bc 2: Ngi dng chn chc nng ng K (nu ngi dng cha c ti khon trong mua voucher) Bc 3: Trang dangky.aspx hin ra, ti y ngi dng s nhp cc thng tin m MuaVoucher ra cho bn. Ngi dng c nhng ni quy khi tham gia vo MuaVoucher nu bn chp nhn thnh du vo vung trc ni quy v tip tc , nu khng chp nhn ngi dng c th tr v trang ch xem cc sn phm. Bc 4: Sau khi in y cc thng tin v chp nhn ni quy ca MuaVoucher, ngi dng nhp vo nt ng K v ch h thng xc nhn. Bc 5: Khi ngi dng nhn c cu: Bn ng k thnh cng. Cho mng tendangnhap n vi MuaVoucher!!!, ngi dng c ti kh on trong MuaVoucher. Ngi dng c th xem sn phm v mua voucher trn MuaVoucher v c hng quyn li khi l thnh vin ca MuaVoucher. Bc 6: Kt thc chc nng ng K.

Chc nng ng Nhp:


o Mc tiu: Khi ng nhp ngi dng c th mua cc Voucher c trn MuaVoucher v cc quyn li khi mua. o Ngi dng: Khch hng (sau khi ng k thnh cng v c ti khon trn MuaVoucher), Admin, Doanh Nghip. o u vo: Tn ng nhp Password (Mt khu) (Mi ngi dng u c mt tn ng nhp v mt khu ring c s sng trong MuaVoucher)
H Qun Tr C S D Liu

11

o u ra: ng nhp thnh cng quay v trang ch. o Cc bc thc thi: Bc 1: Ngi dng vo trang ch ca MuaVoucher. Bc 2: Ngi dngla chn chc nng ng Nhp (nu ngi dng c ti khon trong MuaVoucher), ng K (nu ngi dng cha c ti khon trong mua voucher). y, bn s chn l ng Nhp. Bc 3: Trang dangnhap.axps hin ra, ti y ngi dng nhp tn ngi dng, mt khu. Bc 4: Ngi dng chn nt ng Nhp, h thng s kim tra tn ng nhp v mt khu ca bn. Nu ng trang ch ca MuaVoucher v bn gc phi mn s hin cu: "Xin cho tendangnhap !!!". Nu sai h thng s thng bo li ngay ti ch bn nhp sai, Bc 3 s lp li cho bn nhp li thng tin. Bc 5: Kt thc chc nng ng Nhp.

Chc nng Thay i Mt Khu:


o Mc tiu: Ngi dng sa mt khu trn h thng. o Ngi dng: Khch hng, Admin, Doanh Nghip. o u vo: Ngi dng ng nhp vo h thng, xem thng tin c nhn v chn chc nng thay i mt khu. o u ra: Thng bo thay i mt khu thnh cng. o Cc bc thc thi: Bc 1: Hin th thng tin ngi dng. Bc 2: Ngi dng chn chc nng thay i mt khu. Hin From thay i mt khu. Ngi dng nhp: - Mt khu mi.
H Qun Tr C S D Liu

12

- Mt khu mi nhp li. H thng kim tra mt khu thay i: - Nu mt khu mi nhp li sai th hin thng bo li: Mt khu mi nhp li khng chnh xc. Xa mt khu mi v mt khu mi nhp li. Quay v Bc 2. Nu cc thng tin u nhp ng tip tc Bc 3. Bc 3: H thng cp nht mt khu thay i v hin th thng bo thay i mt khu thnh cng cho ngi dng. Bc 4: Quay tr v Bc 1.

Chc nng Thay i Thng Tin C nhn:


o Mc tiu: Ngi dng sa thng tin c nhn trn h thng. o Ngi dng: Khch hng. o u vo: khch hng ng nhp vo h thng, xem thng tin c nhn. o u ra: Thng bo thay i thng tin c nhn thnh cng. o Cc bc thc thi: Bc 1: Hin th thng tin khch hng. Bc 2: Khch hng thay i cc thng tin nh: H v tn. Ngy sinh. Gii tnh. a ch. S in thoi. Email. H thng kim tra thng tin thay i c hp l: - Nu cc thng tin thay i khng ng nh dng th hin thng bo li. - Quay v bc 1.
H Qun Tr C S D Liu

13

Nu cc thng tin u nhp ng tip tc Bc 3. Bc 3: H thng cp nht thng tin khch hng thay i v hin th thng bo thay i thng tin thnh cng cho ngi dng. Bc 4: Quay tr v Bc 1.

Chc nng mua Voucher:


o Mc tiu: gip cho khch hng t mua Voucher n u tm c Voucher ng . o Ngi dng: Khch hng o u vo: Yu cu khch hng phi ng nhp thanh cng vo h thng v chn chc nng t Mua. o u ra: Voucher c b vo Gi hng ca khch hng. o Cc bc thc thi: Bc 1: Hin danh sch Voucher. Bc 2: Chn Voucher ng . Bc 3: Nhp s lng Voucher cn mua. Bc 4: H thng kim tra s lng ca Voucher . Trng hp nu s lng voucher nhiu hn s lng voucher c trong h thng: - Thng bo li. - Quay li Bc 3. Trng hp nu s lng voucher t hn s lng voucher c trong h thng, tip tc Bc 5. Bc 5: Voucher t mua c thm vo Gi Hng ca khch hng.

Chc nng Thanh ton:


o Mc tiu: Khch hng thanh ton Voucher trn h thng. o Ngi dng: Khch hng.
H Qun Tr C S D Liu

14

o u vo: Khch hng ng nhp vo h thng, vo xem Gi Hng v chn chc nng thanh ton. o u ra: Thanh ton thnh cng. o Cc bc thc thi: Bc 1: Hin th danh sch cc Voucher c trong Gi Hng. Bc 2: Kim tra Gi Hng Trng hp khch hng cha c Voucher trong Gi hng m chn chc nng Thanh ton th: - Thng bo li. - Quay v Bc 1. Trng hp khch hng mun thay i Voucher trc khi thanh ton nh thay i s lng hoc xa Voucher ra khi gihng.Gi hng c h thng cp nht li.Tip tc Bc 3. Trng hp khch hng thanh ton ht Voucher trong gi hng th chn nt thanh ton v tip tc Bc 3. Bc 3: Thanh ton ( c hai hnh thc thanh ton : tr trc v tr sau) Hin th textbox Nhp vo a ch giao hng. Nu khch hng chn hnh thc l: Tr trc - H thng kim tra s d trong ti khon ca khch hng: Nu tng s tin khi khch hng thanh ton nh hn s d ti khon ca khch hng. Nu tha th vic mua sn phm c chp nhn, ng thi h thng s tr s tin trong th Voucher ca thnh vin bng s tin mua sn phm.Tip tc Bc 4. Nu tng s tin khi khch hng mua sn phm ln hn s d ti khon ca khch hng: a. Thng bo li.
H Qun Tr C S D Liu

15

b. Quay v Bc 1. Nu khch hng chn hnh thc l: Tr sau - Tip tc Bc 4. Bc 4: Hin th thng bo Thanh ton thnh cng. Bc 5: Qun tr vin s gi mail n khch hng m s ha n giao hng v thi gian giao phiu.

Chc nng Xem Lch S Mua Hng:


o Mc tiu : Ngi dng xem li lch s mua hng trc . o Ngi dng: Khch hng. o u vo: Khch hng phi ng nhp vo ht thng v chn chc nng Xem lch s mua hng. o u ra: Xem lch s mua hng thnh cng. o Cc bc thc thi: Bc 1:Chn chc nng xem lch s mua hng Bc 2 Hin th mn hnh xem lch s mua hng. Bc 3: Ngi dng chn xem chi tit ca mt n hng. Bc 4: Quay v Bc 1 nu khch hng mun xem tip n hng hoc khng th kt thc xem lch s mua hng.

Chc nng Xem Thng tin Voucher:


o Mc tiu: Khch hng c th xem chi tit ca Voucher nh gi gc, gi khuyn mi, thng tin v Voucher o Ngi dng: Khch hng. o u vo: Khch hng ng nhp h thng v khch hng chac ti khon trong h thng, chn xem chi tit Voucher. o u ra: Hin th mn hnh chi tit Voucher. o Cc bc thc thi:
H Qun Tr C S D Liu

16

Bc 1: Hin danh sch cc Voucher Bc 2 : Nhn nt xem chi tit Voucher cn xem Bc 3: Hin th mn hnh xem thng tin chi tit Voucher. Bc 4: Khch hng xem thng tin Voucher.

Chc nng Np th: o Mc tiu: Ngi dng np th vo ti khon. o Ngi dng: Khch Hng. o u vo: Khch hng ng nhp vo h thng v chn chc nng np th. o u ra: Np th thnh cng. o Cc bc thc thi: Bc 1: Chn chc nng np th Bc 2: Hin th mn hnh np th. Bc 3: Ngi dng nhp vo: s Series v Code th. Bc 4: H thng kim tra th np: Trng hp s Series v Code khng hp l: - Thng bo li. - Xa s Series v Code th nhp. - Quay v Bc 1. Trng hp s Series v Code hp l. Tip tc Bc 5. Bc 5: Thng bo np th thnh cng v h thng cp nhp li s d ti khon ca khch hng.

Chc nng Xem Lch SNp th:


o Mc tiu: Khch hng xem s d ti khon. o Ngi dng: Khch hng.

H Qun Tr C S D Liu

17

o u vo: Khch hng ng nhp vo h thng v chn chc nng Xem lch s th np. o u ra: Xem lch s th np thnh cng. o Cc bc thc thi: Bc 1: Chn chc nng xem lch s th np Bc 2: Hin th mn hnh xem lch s np th. Bc 3: Khch hng xem s d ti khon, ngy np th gn y v thng tin cc th np Bc 4: Kt thc xem lch s np th v quay v trang ch.

Chc nng Qun L Voucher:


o Mc tiu: Admin v Doanh Nghipxem danh sch Voucher. o Ngi dng: Admin v Doanh Nghip o u vo:Adminv Doanh Nghipng nhp thnh cng vo h thng v chn chc nng qun l Voucher. o u ra: Xem danh sch Voucher thnh cng. o Cc bc thc hin: Bc 1: Chn chc nng qun l Voucher Bc 2: Hin th danh sch Voucher. Bc 3: Admin hoc Doanh Nghip xem Voucher c quyn cp nhttn Voucher, thng tin chi tit, ngy bt u, ngy kt thc, gi gc, gi khuyn mi, s lng, hnh nh ca Voucher. Bc 4 : Sao lu nu cc cp nht hp l .Nu khng hp l quay li bc 3 Bc 5: Kt thcv quay v Bc 1.

Chc nng Qun L Th Np:


o Mc tiu: Admin xem danh sch th np. o Ngi dng: Admin.
H Qun Tr C S D Liu

18

o u vo:Adminng nhp thnh cng vo h thng v chn ch c nng qun l Th np. o u ra: Xem danh sch th np thnh cng. o Cc bc thc hin: Bc 1: Chn chc nng qun l th np Bc 2: Hin th danh sch th np. Bc 3: Admin xem th np v thm thnphoc sa i t l khuyn mi. Bc 4 :Sao lu nu cc thng tin hp l .Nu khng hp l quay li bc 3 Bc 5: Kt thcv quay v Bc 1.

Chc nng Qun L n Hng:


o Mc tiu: Admin xem danh sch n hng. o Ngi dng: Admin. o u vo:Admin ng nhp thnh cng vo h thng v chn chc nng qun l n hng. o u ra: Xem danh sch n hng thnh cng. o Cc bc thc hin: Bc 1: Chn chc nng qun l n hng Bc 2: Hin th danh sch n hng. Bc 3: Admin xem n hng v cp nht li trang thi n hng Bc 4:Sao lu nu cc thng tin hp l .Nu khng hp l quay li bc 3

Bc 5: Kt thc v quay v Bc 1.

H Qun Tr C S D Liu

19

3 M T C S D LIU
3.1 Lc c s d liu

M hnh quan h:
M H (1,1) Chi tit n hng (1,1) (1, n) thuc (1,1) a ch giao hng Tng tin Ngy giao n hng Tnh trng (1,1) Ngy t hng

thuc M loi hnh Tn loi hnh Trng thi Loi hnh dch v (0, n) thuc Ngy bt u Tn voucher M voucher (0, n) (1,1) Voucher Url hnh Trng thi

S lng Thnh tin

Thng tin chi tit Gi gc S lng H v tn ng Qun Email a ch (1, n) Ngi dng

thuc Thnh ph S in thoi Trng thi

(1,1) Ngy kt thc Gi khuyn mi

cung cp

thanh ton

Mt khu

(1,n) Loi hnh thanh ton

Tn ng nhp M ND M hp ng Ngy k Hp ng Thi hn Trng thi M t (1,1) c (1,n) Doanh nghip

M loi hnh thanh ton Tn loi hnh thanh ton Trng thi

(0, n) Ngy thnh lp

(0, n) CMND Ngy Thng Nm (1,1) Khch hng Ngy sinh Gii tnh C M ti khon (1,1) Ti khon th np (0,n) S d ti khon Trng thi Trng thi Ngy np Th np np (1,1)

Admin

M th Series Code th Mnh gi T l khuyn mi

H Qun Tr C S D Liu

20

Lc c s d liu:

3.2 M t c s d liu: a. Cc mi quan h trong lc ER: 1. Loi hnh dch v - Voucher:


Loi hnh dch v (0, n) thuc (1,1) Voucher

- Vi mi loi hnh dch v c th c nhiu hoc khng c Voucher no thuc loi . - Mi Voucher ch thuc duy nht mt loi hnh dch v .

H Qun Tr C S D Liu

21

2. Voucher Doanh nghip:


Voucher (1,1) cung cp (0, n) Doanh nghip

- Doanh nghip c th cung cp nhiu Voucher hoc khng cung cp Voucher no. - Mt Voucher ch thuc duy nht mt doanh nghip.

3. Doanh nghip - Hp ng:


(1,1) Hp ng c (1,n) Doanh nghip

- Mi doanh nghip c mt hoc nhiu hp ng vi mua vocher. - Mt hp ng ca duy nht mt doanh nghip. 4. Khch hng Ti khon:
Khch hng (1,n) c (1, 1) Ti khon th np

- Khch hng c th c mt hoc nhiu ti khon thanh ton. - Mt ti khon l ca duy nht mt khch hng. 5. Ti khon - Th np:
Ti khon th np (0,n) np (1, 1) Th np

- Mt th np c duy nht mt ton khon dng. - C th c nhiu hoc khng c ti khon no np th.

6. Voucher Chi tit n hng:


Voucher (0,n) thuc (1, 1) Chi tit n hng

- Mt chi tit n hng din t mt cho mt m Voucher. - C khng hoc nhiu mVoucher thuc chi tit n hng.

H Qun Tr C S D Liu

22

7. Chi tit n hng n hng:


Chi tit n hng (1,1) (1, n) thuc n hng

- Mt chi tit n hng thuc mt n hng. - n hng c mt hoc nhiu chi tit n hng.

8. n hng - Loi hnh thanh ton:


n hng (1, 1) thuc (1,n) Loi hnh thanh ton

- Mt n hng thuc duy nht mt loi hnh thanh ton. - Mt loi hnh thanh ton c mt hoc nhiu n hng. 9. n hng Khch hng:
Khch hng (0,n) thanh ton (1,1) n hng

- Mt n hng do mt khch hng thanh ton. - Khch hng c th thanh ton nhiu n hng hoc khng thanh ton n hng no.

Lc c s d liu: o B ng LoaiHinhDichVu:cung cp cc loi hnh dch v m MuaVoucher hin ang c (v d : Du lch, Nh hng n ung, Cng ngh, Vt dng gia nh,.)
M loi hnh Tn loi hnh Trng thi Loi hnh dch v

LoaiHinhDichVu (MaLoaiHinh, TenLoaiHinh, TrangThai)

H Qun Tr C S D Liu

23

STT 1

Tn thuc tnh MaLoaiHinh

Kiu d liu Int

Key Primary

M t Mi mt loi hnh dch v u khc nhau tng trng cho mt loi dch v m cc Voucher thuc v Tn loi hnh nh ngha cho tng loi hnh dch v c trong MuaVoucher Cc loi hnh dch v c th b thay i trong MuaVoucher, v vy trng thi biu din cho loi hnh m MuaVoucher ang c vi 2 s nguyn. 0: ngng hot ng, 1: ang hotng.

2 3

TenLoaiHinh TrangThai

nvarchar(50) Unique Int

o B ng LoaiHinhThanhToan:MuaVoucher s a ra cc hnh thc thanh ton nhm p ng nhu cu mua hng ca khch hng, v d: tr sau ( thanh ton ngay khi giao voucher ) hoc tr trc ( np th voucher sau h thng s tr trc tip vo ti khon)
(1,n) Loi hnh thanh ton M loi hnh thanh ton Tn loi hnh thanh ton Trng thi

LoaiHinhThanhToan (MaLoaiHinhThanhToan,TenLoaiHinhThanhToan,TrangThai)

H Qun Tr C S D Liu

24

STT Tn thuc tnh 1 MaLoaiHinhThanhToan

Kiu d liu Int

Key Primary

TenLoaiHinhThanhToan nvarchar(50)

TrangThai

Int

M t Mi mt loi hnh thanh ton u khc nhau tng trng cho hnh thc khch hng thanh ton trn MuaVoucher Tn loi hnh thanh ton nh ngha cho tng loi hnh thanhtonc trong MuaVoucher Trng thi biu din cho loi hnh thanh ton m MuaVoucher ang c vi 2 s nguyn. 0: ngng hot ng, 1: ang hotng.

o B ng Voucher:Doanh nghip c th thm, xa, sa cc sn phm c Voucher do


doanh nghip cung cp ty theo nhu cu ca khch hng.
Tn voucher M voucher (0, n) (1,1) Ngy bt u Voucher

Url hnh Trng thi Thng tin chi tit Gi gc S lng

(1,1) Ngy kt thc Gi khuyn mi

Voucher (MaVoucher,TenVoucher,ThongTinChiTiet, NgayBatDau, NgayKetThuc, GiaGoc, GiaKhuyenMai, SoLuong,UrlHinh,TrangThai, MaLoaiHinhDV, MaTaiKhoanQL)

H Qun Tr C S D Liu

25

STT Tn thuc tnh 1 MaVoucher

Kiu d liu Int

Key Primary

2 3 4 5

TenVoucher ThongTinChiTiet NgayBatDau NgayKetThuc

nvarchar(50) nvarchar(1000) datetime datetime

GiaGoc

decimal(18,0)

GiaKhuyenMai

decimal(18,0)

SoLuong

int

M t Mi mt m voucher u khc nhau i i tng sn phm c Voucher Mi m Vouher u c tn Voucher tng ng khch hng c ci nhn tng th doanh nghip cn m t cc thng tin c lin quan n Voucher nh ngy bt u v ngy kt thc rao bn voucher, s lng ti a ca Voucher trn sn phm , doanh nghip cn a r gi gc v gi khuyn mi khi khch hng mua voucher km vi cc thng tin chi tit ca voucher. Trng thi biu din sn phm m doanh nghip ng trn MuaVoucher vi 2 s nguyn. 0: ngng hot ng, 1: ang hot
26

Int 9 TrangThai

H Qun Tr C S D Liu

10

MaLoaiHinhDV

Int

11

MaDoanhNghiep

Int

12

UrlHinh

nvachar(500)

ng. Foreigntham Mt m voucher ng chiu n bng vi mt loi hnh dch LoaiHinhDichVu. v m doanh nghip cung cp. Foreigntham Mi mt Voucher c chiu n bng qun l bi mt doanh NguoiDung. nghip ng vi mi Voucher s c hnh nh c th qung co cho voucher

o B ng HopDong:Trc khi ng cc Voucher trn trang MuaVoucher doanh nghip phi k vi MuaVoucher hp ng hp tc v qung co sn phm ca doanh nghip
M hp ng Ngy k Hp ng Thi hn Trng thi M t (1,1)

HopDong (MaHopDong, NgayKy, ThoiHan, MoTa, TrangThai, MaDoanhNghiep)

STT Tn thuc tnh 1 MaHopDong

Kiu d liu Int

Key Primary

M t Mi mt m hp ng l ring bit i vi cc doanh nghip hp tc vi MuaVoucher

H Qun Tr C S D Liu

27

2 3 4 5

NgayKy ThoiHan MoTa TrangThai

MaDoanhNghiep

Mt hp ng cn c ngy k kt hp ng cng vi thi gian ht datetime hp ng km theo nvarchar(1000) nhng iu l khi 2 bn tha thun vi nhau Int Trng thi biu din doanh nghip c cn hay khng cn hp tc vi MuaVoucher, vi 2 s nguyn. 0: ngng hot ng, 1: ang hot ng. Int Foreigntham Ch ra hp ng thuc chiu n doanh nghip bng NguoiDung. datetime

o B ng TheNap:i vi hnh thc thanh ton trc tip MuaVoucher cung cp cho
thnh vin th mua Voucher vi cc mnh gi khc nhau.
(1,1) Ngy np Trng thi Th np M th Series Code th Mnh gi T l khuyn mi

TheNap (MaTheNap, Series, Code, MenhGia, NgayNap, TiLeKhuyenMai,TrangThai, MaTaiKhoan)

H Qun Tr C S D Liu

28

STT Tn thuc tnh 1 MaTheNap

Kiu d liu Key Int Primary

2 3 4 5 6 7

Series Code MenhGia NgayNap TiLeKhuyenMai TrangThai

varchar(50) varchar(50) decimal(18,0) datetime Int Int

Unique Unique

MaTaiKhoan

Int

Foreigntham chiu n bng TaiKhoanTheNap.

M t Mi th np l duy nht v ch s dng c mt ln Mi th np c s series l duy nht Mi th np c code l duy nht Ty theo th np do MuaVoucher bn c mnh gi khc nhau, v t l khuyn mi v ngy np th. Trng thi cho bit th np c np hay cha np, vi 2 s nguyn. 0: cha np, 1: c np Mi th np l ca mt ti khon.

o B ng TaiKhoanTheNap:Sau khi np th khch hng c th xem s d ti khon ca mnh qua bng TaiKhoanTheNap
M ti khon (1,1) Ti khon th np (0,n) S d ti khon Trng thi
29

H Qun Tr C S D Liu

TaiKhoanTheNap (MaTaiKhoan, SoDuTaiKhoan, TrangThai, MaKhachHang)

STT Tn thuc tnh 1 MaTaiKhoan 2 SoDuTaiKhoan

Kiu d liu int

TrangThai

MaKhachHang

M t Mi m ti khon l duy nht. decimal(18,0) Khch hng c th xem s tin cn li trong ti khon th ca mnh. int Trng thi cho bit ti khon th np cn hay ht, vi 2 s nguyn. 0: ht tin trong ti khon, 1: cn tin trong ti khon int Foreigntham Khch hng c mt m chiu n ti khon. bng NguoiDung, Unique Key Primary

o B ng DonHang: Khch hng c quyn xem li n hng ca mnh.


M H (1, n) a ch giao hng Tng tin Ngy giao n hng Tnh trng (1,1) Ngy t hng

(1,1)

H Qun Tr C S D Liu

30

DonHang (MaDonHang, DiaChiGiaoHang, NgayDatHang, NgayGiao, TongTien, TrangThai, MaKhachHang, MaLoaiHinhThanhToan)

STT Tn thuc tnh 1 MaDonHang

Kiu d liu Int

Key Primary

2 3 4 5 6

DiaChiGiaoHang NgayDatHang NgayGiao TongTien TrangThai

nvarchar(500) Datetime Datetime decimal(18,0) Int

MaKhachHang

Int

MaLoaiHinhThanhToan

Int

Foreigntham chiu n bng NguoiDung. Foreigntham chiu

M t Mi m n hng l duy nht, phn bit vi tng n hng. Trong n hng khch hng c th xem cc thng tin nh ngy t hng ngy giao hng, a ch giao hng v tng tin hng m khch hng t mua. Tnh trng biu din cho mt n hng vi 4 s nguyn : 0_ cha xc nhn n hng ,1_ c xc nhn n hng , 2_ang giao hng , 3_ giao . Mi n hng l ca mt khch hng Mi n hng c
31

H Qun Tr C S D Liu

n bng mt hnh thc LoaiHinhThanhToan. thanh ton ring o B ng ChiTietDonHang: Khch hng c th xem voucher v s lng Voucher mua thng qua bng ChiTietDonHang.

(0, n)

thuc

(1,1)

Chi tit n hng

(1,1)

(1, n) thuc

S lng Thnh tin

ChiTietDonHang (MaChiTietDonHang, MaDonHang, MaVoucher, SoLuong, ThanhTien)

STT Tn thuc tnh 1 MaChiTietDonHang 2 MaDonHang

Kiu d liu int

3 4 5

MaVoucher SoLuong ThanhTien

M t Mi m chi tit n hng l duy nht. int Foreigntham Cho bit chi tit n chiu n hng thuc n hng bng no. DonHang. int Cc voucher mua int S lng voucher cng nh thnh tin ng vi s lng voucher m decimal(18,0) khch hng mua Key Primary
32

H Qun Tr C S D Liu

TrangThai

int

Vi 2 s nguyn biu din 0: ngng hot ng, 1: ang hot ng.

o Vi cy phn cp ta chia thnh 2 bng:

ng Qun Email H v tn Mt khu Tn ng nhp M ND Ngi dng a ch (1, n)

Thnh ph S in thoi Trng thi

(0, n) (1,n) Doanh nghip Ngy thnh lp

(0, n) CMND Ngy Thng Nm (1,1) Khch hng Ngy sinh Gii tnh

Admin

- LoaiNguoiDung (MaLoaiNguoiDung, TenLoaiNguoiDung,TrangThai)

STT Tn thuc tnh 1 MaLoaiNguoiDung 2 TenLoaiNguoiDung

Kiu d liu int nvarchar(200)

Key Primary Unique

M t Mi mt loi ngi dng l khch nhau. Tn ngi dng l Khch hng, Admin, Doanh Nghip. Vi 2 s nguyn biu
33

TrangThai

int

H Qun Tr C S D Liu

din 0: ngng hot ng, 1: ang hot ng. - NguoiDung (MaNguoiDung, TenDangNhap, MatKhau, TenKhachHang, GioiTinh, CMND, DiaChi, DienThoai, Email, MaTaiKhoan,TrangThai,LoaiNguoiDung)

STT Tn thuc tnh 1 MaNguoiDung

Kiu d liu int

Key Primary

M t Mi ngi dng c mt m ngi dng duy nht. Ngi dng sau khi ng k vo MuaVoucher cn c mt tn ngi dng v mt khu ng nhp h thng.Bn cnh cn cung cp thm thng tin v tn ngi dng, ngy sinh, gii tnh, chng minh nhn dn, a ch, in thoi, email ca ngu dng.

2 3 4 5 6 7 8 9 10

TenDangNhap MatKhau TenNguoiDung NgaySinh GioiTinh CMND DiaChi DienThoai Email

varchar(50) varchar(20) nvarchar(50) datetime int varchar(50) nvarchar(500) varchar(50) varchar(50)

Unique

Unique

Unique

H Qun Tr C S D Liu

34

11

MaLoaiNguoiDung

int

12

TrangThai

int

Foreign tham Loi ngi dng miu chiu n bng t l Admin,Khch LoaiNguoiDung. hng hay Doanh Nghip c din bi 2 s nguyn: 0_l Admin, 1_Khch hng, 2_ Doanh Nghip. Admin c th kch hot hoc v hiu ha ngi dng: 0_v hiu ha, 1_kch hot

3.3 Rng buc ca c s d liu

A. Rule:
i. To Rule: o Kim tra gi tr dng: CREATERULE ur_GiaTriDuong AS @GiaTri>=0 GO o Rng buc thuc tnh Trng thi: CREATERULE ur_TrangThai AS @TT IN(1,0) GO o Rng buc gii tnh: CREATERULE ur_GioiTinh AS @TT IN(1,2,3) GO

ii.

Ci t Rule cho cc bng: 1. Th Np: o Mnh gi trong Th Np phi >= 0

H Qun Tr C S D Liu

35

sp_bindRule'ur_GiaTriDuong','TheNap.MenhGia' o T l khuyn mi trong th np >= 0 sp_bindRule'ur_GiaTriDuong','TheNap.TiLeKhuyenMai' o Trng thi trong th np phi c gi tr 0 , 1( 1: hot ng, 0: ngng hot ng) sp_bindRule'ur_TrangThai','TheNap.TrangThai' 2. Voucher: o Gi gc trong Voucher >= 0 sp_bindRule'ur_GiaTriDuong','Voucher.GiaGoc' o Gi khuyn mi trong Voucher >= 0 sp_bindRule'ur_GiaTriDuong','Voucher.GiaKhuyenMai' o S lng Voucher phi >= 0 sp_bindRule'ur_GiaTriDuong','Voucher.SoLuong' o Trng thi trong Voucher phi c gi tr 0 , 1( 1: hot ng, 0: ngng hot ng) sp_bindRule'ur_TrangThai','Voucher.TrangThai' 3. Ti Khon Th Np: o S d trong ti khon phi >= 0 sp_bindRule'ur_GiaTriDuong','TaiKhoanTheNap.SoDuTaiKhoan' o Trng thi trong Ti Khon Th Np phi c gi tr 0 , 1( 1: hot ng, 0: ngng hot ng) sp_bindRule'ur_TrangThai','TaiKhoanTheNap.TrangThai' 4. Ngi Dng: o Trng thi trong Ngi Dng phi c gi tr 0 , 1( 1: hot ng, 0: ngng hot ng)
H Qun Tr C S D Liu

36

sp_bindRule'ur_TrangThai','NguoiDung.TrangThai' o Gii tnh Ngi Dng phi c gi tr 1,2,3( 1: nam, 2: n, 3: khc) sp_bindRule'ur_GioiTinh','NguoiDung.GioiTinh' 5. Loi Hnh Thanh Ton: o Trng thi trong Loi Hnh Thanh Ton phi c gi tr 0 , 1( 1: hot ng, 0: ngng hot ng) sp_bindRule'ur_TrangThai','LoaiHinhThanhToan.TrangThai' 6. Loi Hnh Dch V: o Trng thi trong Loi Hnh Dch V phi c gi tr 0 , 1( 1: hot ng, 0: ngng hot ng) sp_bindRule'ur_TrangThai','LoaiHinhDichVu.TrangThai' 7. Hp ng: o Trng thi trong Hp ng phi c gi tr 0 , 1( 1: hot ng, 0: ngng hot ng) sp_bindRule'ur_TrangThai','HopDong.TrangThai' 8. n Hng: o Tng tin trong n Hng > = 0 sp_bindRule'ur_GiaTriDuong','DonHang.TongTien' o Trng thi trong n Hng phi c gi tr 0 , 1( 1: hot ng, 0: ngng hot ng) sp_bindRule'ur_TrangThai','DonHang.TrangThai' 9. Chi Tit n Hng: o Thnh tin trong chi tit n hng >= 0 sp_bindRule'ur_GiaTriDuong','ChiTietDonHang.ThanhTien' o S lng Voucher trong Chi Tit n Hng phi > = 0
H Qun Tr C S D Liu

37

sp_bindRule'ur_GiaTriDuong','ChiTietDonHang.SoLuong' o Trng thi trong Chi Tit n Hng phi c gi tr 0 , 1( 1: hot ng,0: ngng hot ng) sp_bindRule'ur_TrangThai','ChiTietDonHang.TrangThai' 10.Doanh Nghip: o Trng thi trong Doanh Nghip phi c gi tr 0 , 1( 1: hot ng, 0: ngng hot ng) sp_bindRule'ur_TrangThai','DoanhNghiep.TrangThai'

B. Trigger:
1.Trong n hng : ngy giao khng c trc ngy t v ngy t khng c t trc ngy hin ti. - Bi cnh : DonHang - Bng tm nh hng: Tn bng Thm Xa DonHang + - Ci t: Nu trong d liu va insert c tn ti 1 n hng m ngy giao trc ngy t hoc ngy giao trc ngy hin ti th hin th li v rollback li giao tc CREATE TRIGGER tr_DonHang_ins_upd On DonHang Forinsert,update As Begin declare @ngayhientai datetime set @ngayhientai=GETDATE() Ifexists(select*from inserted I WhereDatediff(DD, I.NgayGiao, I.NgayDatHang)> 0 orDatediff(DD, I.NgayGiao, @ngayhientai)> 0 orDatediff(DD, I.NgayDatHang, @ngayhientai)> 0 ) Begin
H Qun Tr C S D Liu

Sa + (NgayGiao,NgayDatHang)

38

Raiserror('Ngay dat hang hoac ngay giao khong hop le',0,1) Rollbacktransaction End End Go 2. Trong hp ng : Thi hn khng c trc ngy k v thi hn, ngy k khng c trc ngy hin ti - Bi cnh: HopDong - Bng tm nh hng: Tn bng Thm HopDong + Xa Sa + (NgayKy,ThoiHan)

-Ci t: Nu trong d liu va insert c tn ti 1 hp ng m thi hn trc ngy k hoc ngy k trc ngy hin ti, hoc thi hn trc ngy hin ti th hin th li v rollback li giao tc CREATE TRIGGER tr_HopDong_ins_upd On HopDong Forinsert,update As Begin declare @ngayhientai datetime set @ngayhientai=GETDATE() Ifexists(select*from inserted I WhereDatediff(DD, I.Thoihan, I.NgayKy)> 0 orDatediff(DD, I.NgayKy, @ngayhientai)> 0 orDatediff(DD, I.Thoihan, @ngayhientai)> 0 ) Begin Raiserror('Ngay ky hop dong hoac thoi han khong hop le',0,1) Rollbacktransaction End End Go 3. Trong Voucher : + ngy kt thc khng c trc ngy bt u v ngy bt u khng c trc ngy hin ti + gi khuyn mi khng c ln hn gi gc
H Qun Tr C S D Liu

39

- Bi cnh: Voucher - Bng tm nh hng: Tn bng Voucher Thm + Xa Sa + (NgayBatDau,NgayKetThuc,GiaGoc,GiaKhuyenMai)

Ci t: - Nu trong d liu va insert c tn ti 1 Voucher m ngy kt thc trc ngy bt u, hoc ngy bt u, ngy kt thc trc ngy hin ti th hin th li v rollback li giao tc - Nu trong d liu va insert c tn ti 1 Voucher m gi khuyn mi ln hon gi gc th hin th li v rollback li giao tc CREATE TRIGGER tr_Voucher_ins_upd On Voucher Forinsert,update As Begin declare @ngayhientai datetime set @ngayhientai=GETDATE() Ifexists(select*from inserted I WhereDatediff(DD, I.NgayKetThuc, I.NgayBatDau)> 0 orDatediff(DD, I.NgayKetThuc, @ngayhientai)> 0 orDatediff(DD, I.NgayBatDau, @ngayhientai)> 0 ) Begin Raiserror('Ngay bat dau hoac ngay ket thuc khong hop le',0,1) Rollbacktransaction End IfExists(Select*from inserted I where I.GiaKhuyenMai > I.GiaGoc) Begin Raiserror('Gia Khuyen Mai khong hop le',0,1) Rollbacktransaction End End Go 4. Ngy sinh ca ca ngi dng khng c trc 01/01/1990 v sau ngy hin ti - Bi cnh: NguoiDung - Bng tm nh hng: Tn bng
H Qun Tr C S D Liu

Thm

Xa

Sa
40

NguoiDung

+ (NgaySinh)

-Ci t: Nu trong d liu va insert c tn ti 1 ngi dng m nm sinh sau nm hin ti hoc trc nm 1900 th hin th li v rollback li giao tc CREATE TRIGGER tr_NguoiDung_ins_upd On NguoiDung Forinsert,update As Begin declare @ngayhientai datetime set @ngayhientai=GETDATE() Ifexists(select*from inserted I WhereDatediff(yy, I.NgaySinh, @ngayhientai)< 1 OrDatediff(yy, I.NgaySinh,'1900-1-1')> 0 ) Begin Raiserror('Ngay sinh khong hop le',0,1) Rollbacktransaction End End Go 5.Chi tit n hng Voucher: Khch hng khng c mua qu s lng cn li ca Voucher - Bi cnh: Voucher, ChiTietDonHang -Bng tm nh hng: Tn bng Voucher ChiTietDonHang Ci t: - Khi insert 1 chi tit n hng m khch hng mua qu s lng cn li th hin th li v rollback li giao tc CREATE TRIGGER tr_ChiTietDonHang_ins_Voucher ON ChiTietDonHang Afterinsert
H Qun Tr C S D Liu

Thm + +

Xa +

Sa + (GiaKhuyenMai) + (SoLuong,MaVoucher)

41

As Begin IFExists(select*from inserted I,Voucher V where I.MaVoucher = V.MaVoucher And I.SoLuong > V.SoLuong) Begin Raiserror('So Luong Khong Hop Le',0,1) Rollbacktransaction End else Begin ---Cap Nhat lai so luong voucher con lai Update Voucher Set SoLuong = v.SoLuong-i.SoLuong From Voucher v , inserted i Where v.MaVoucher=i.MaVoucher ---Tinh Thanh tien Voucher duoc mua trong Chi Tiet Don hang Update ChiTietDonHang set ThanhTien =i.SoLuong*v.GiaKhuyenMai From ChiTietDonHang ct ,inserted i,Voucher v where ct.MaChiTietDonHang = i.MaChiTietDonHang and v.MaVoucher=i.MaVoucher End End Go - Nu khch hng hy Voucher th phi cp nht li s lng Voucher v trng thi c CREATE TRIGGER tr_ChiTietDonHang_del_Voucher ON ChiTietDonHang Afterdelete As Begin Update Voucher Set SoLuong = v.SoLuong+d.SoLuong From Voucher v , deleted d Where v.MaVoucher=d.MaVoucher End Go - Khi update 1 chi tit n hng m khch hng mua qu s lng cn li th hin th li v rollback li giao tc CREATE TRIGGER tr_ChiTietDonHang_upd_Voucher ON ChiTietDonHang
H Qun Tr C S D Liu

42

Afterupdate As Begin IFExists(select*from inserted I,Voucher V where I.MaVoucher = V.MaVoucher And I.SoLuong > V.SoLuong) Begin Raiserror('So Luong Khong Hop Le',0,1) Rollbacktransaction End else Begin declare @mavc1 int declare @mavc2 int select @mavc1=I.MaVoucher from inserted I select @mavc2=D.MaVoucher from deleted D if(@mavc1=@mavc2)--Xet neu thay doi mavoucher thi phai cap nhat lai so luong begin ---Cap Nhat lai so luong voucher con lai cua bang voucher khi them chitietdonhang moi Update Voucher Set SoLuong = v.SoLuong-i.SoLuong From Voucher v , inserted i Where v.MaVoucher=i.MaVoucher ---Cap nhat so voucher con lai tren bang voucher khi delete chitietdonhang cu Update Voucher Set SoLuong = v.SoLuong+d.SoLuong From Voucher v , deleted d Where v.MaVoucher=d.MaVoucher end ---Tinh lai Thanh tien Voucher duoc mua trong Chi Tiet Don hang Update ChiTietDonHang set ThanhTien =i.SoLuong*v.GiaKhuyenMai From ChiTietDonHang ct ,inserted i,Voucher v where ct.MaChiTietDonHang = i.MaChiTietDonHang and v.MaVoucher=i.MaVoucher

End End Go - Tnh li Thnh tin trong Chi tit n hng khi thay i gi khuyn mi ca Voucher
H Qun Tr C S D Liu

43

CREATE TRIGGER tr_Voucher_upd_ChiTietDonHang ON Voucher Afterupdate As Begin Begin Update ChiTietDonHang set ThanhTien=ct.SoLuong*i.GiaKhuyenMai From ChiTietDonHang ct ,inserted i where ct.MaVoucher = i.MaVoucher End End Go 6. Chi tit n hng n hng: Tng tin trong n hng phi ng vi Thnh tin v S lng trong Chi tit n hng - Bi cnh: DonHang,ChiTietDonHang - Bng tm nh hng: Tn bng DonHang ChiTietDonHang Ci t: - Cp nht li Tng tin trong n hng khi thm 1 Chi tit n hng CREATE TRIGGER tr_ChiTietDonHang_ins_DonHang ON ChiTietDonHang Forinsert As Begin --Cap nhat lai tong tien khi them 1 chi tiet don hang Update DonHang Set TongTien = dh.TongTien+i.ThanhTien From DonHang dh ,inserted i Where dh.MaDonHang = i.MaDonHang End Go - Cp nht li Tng tin trong n hng khi hy Chi tit n hng CREATE TRIGGER tr_ChiTietDonHang_del_DonHang ON ChiTietDonHang
H Qun Tr C S D Liu

Thm +

Xa +

Sa + (TongTien) + (ThanhTien,MaDonHang)

44

Fordelete As Begin Update DonHang Set TongTien = dh.TongTien-d.ThanhTien From DonHang dh ,deleted d Where dh.MaDonHang = d.MaDonHang End Go - Cp nht li Tng tin trong n hng khi update 1 Chi tit n hng CREATE TRIGGER tr_ChiTietDonHang_upd_DonHang ON ChiTietDonHang Forupdate As Begin --Cap nhat lai tong tien khi them 1 chi tiet don hang moi Update DonHang Set TongTien = dh.TongTien+i.ThanhTien From DonHang dh ,inserted i Where dh.MaDonHang = i.MaDonHang --Cap nhat lai tong tien khi huy 1 chi tiet don hang cu Update DonHang Set TongTien = dh.TongTien-d.ThanhTien From DonHang dh ,deleted d Where dh.MaDonHang = d.MaDonHang End Go - Khi update Tng tin trong n hng th phi tnh li Thnh tin trong Chi tit n hng cho ph hp CREATE TRIGGER tr_DonHang_upd_ChiTietDonHang ON DonHang Forupdate As Begin declare @tongtien decimal(18,0) select @tongtien =Sum(ct.ThanhTien)From ChiTietDonHang ct,inserted i where ct.MaDonHang=i.MaDonHang Update DonHang Set TongTien = @tongtien From DonHang dh ,inserted i Where dh.MaDonHang = i.MaDonHang End Go

H Qun Tr C S D Liu

45

4 M T TNH HUNG TRANH CHP NG THI


4.1 M t th tc ca h thng

1) Th tc 1: sp_KiemTraDangNhap a. Mc ch s dng th tc: kim tra ti khon hp l hay khng b. ngha cc tham s - @TenDangNhap (varchar): tn ng nhp - @TenDangNhap (varchar): mt khu ca ngi dng - @ID (int) output: tham s u ra lu m ngi dng - @flag (int) output: tham s u ra thng bo v lu loi ngi dng c. Cc bc t t th tc. 1. Nhn cc tham s u vo 2. Kim tra @TenDangNhap v @MatKhau c tn ti hay khng? 3. - Nu ti khon khng tn ti, gn @flag = -1 (ng nhp tht bi) - Nu tn ti khon tn ti, thc hin ly LoaiNguoiDung bng NguoiDung vi TenDangNhap = @TenDangNhap ri sau gn vo @flag. Ly MaNguoiDung gn vo @ID (trng hp mt khu ng, ng nhp thnh cng) vi TenDangNhap = @TenDangNhap v MatKhau = @MatKhau , ngc li nu mt khu khng ng gn @flag = 0 (ng nhp khng thnh cng) 2) Th tc 2: sp_ThayDoiMatKhau a. Mc ch s dng th tc : h tr ngi dng thay i mt khu b. ngha cc tham s: - @MaND (int) : m ngi dng cn thay i mt khu - @MatKhauMoi (varchar): mt khu mi ngi dng mun thay i c. Cc bc t t th tc. 1. Nhn tham s u vo l @MaND v @MatKhauMoi 2. Cp nht li mt khu thnh mt khu mi vi m ngi dng l @MaND

3) Th tc 3: sp_DangKy a. Mc ch s dng th tc: h tr ngi dng ng k ti khon mi b. ngha cc tham s: - @TenDangNhap (varchar) : tn ng nhp ngi dng mun ng k - @MatKhau (varchar): mt khu ca ngi dng - @TenNguoiDung (nvarchar): tn ngi dng - @NgaySinh (datetime): ngy sinh ca ngi dng
H Qun Tr C S D Liu

46

- @GioiTinh (int): gii tnh (1: nam, 2: n, 3: khc) - @CMND (varchar): chng minh nhn dn - @DienThoai (varchar): s in thoi ngi dng - @DiaChi(nvarchar): a ch - @Email(varchar): a ch Email - @flag(int) output: bin kim tra thng tin ti khon ngi dng cn ng k mi tn ti hay cha? (gi tr -1: tn ti, 1: cha tn ti) c. Cc bc t t th tc: 1. Nhn cc tham s u vo 2. Kim tra ti khon ngi dng mun ng k 3. Thc hin insert vo c s d liu nu ti khon hp l 4. Insert thm vo bng TheNapTaiKhoan thm 1 ti khon mi vi m khch hng l ca khch hng va mi ng k

4) Th tc 4: sp_LoadDSVoucher_all a. Mc ch s dng th tc: Ly danh sch tt c Voucher ang hot ng v ngng hot ng. b. ngha cc tham s: khng tham s c. Cc bc ci t th tc: 1. Ly danh sch cc Voucher t c s d liu ln cho ngi dng

5) Th tc 5: sp_LoadDSVoucher_loaidv a. Mc ch s dng th tc: Ly danh sch tt c Voucher ang hot ng theo 1 loi hnh dch v no b. ngha cc tham s: - @maloai (int) : m loi hnh dch v c. Cc bc ci t th tc: 1. Nhn tham s u vo l @maloai 2. Chn cc Voucher c m loi hnh dch v ng vi @maloai v trng thi l ang hot ng

6) Th tc 6 : sp_LoadDSVoucher_doanhnghiep a. Mc ch s dng th tc: Ly danh sch Voucher ang hot ng ca 1 doanh nghip no b. ngha cc tham s: - @madn (int) : m doanh nghip
H Qun Tr C S D Liu

47

c. Cc bc ci t th tc: 1. Nhn tham s u vo l @madn 2. Chn cc Voucher ang hot ng c m doanh nghip tng ng vi @madn

7) Th tc 7: sp_XemChiTietVoucher a. Mc ch s dng th tc: Xem thng tin chi tit ca 1 Voucher b. ngha cc tham s: - @MaVoucher (int) : m Voucher cn xem thng tin c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MaVoucher 2. Ly thng tin chi tit ca Voucher c m l @MaVoucher v TrangThai = 1 (ang hot ng)

8) Th tc 8: sp_LoadDSLoai a. Mc ch s dng th tc: Ly danh sch loi hnh dch v b. ngha cc tham s: khng tham s c. Cc bc ci t th tc: 1. Ly danh sch loi hnh dch v ang hot ng

9) Th tc 9: sp_LoadDSDoanhNghiep a. Mc ch s dng th tc: Ly danh sch doanh nghip b. ngha cc tham s: khng tham s c. Cc bc ci t th tc: 1. Ly danh sch ngi dng ang hot ng vi m loi ngi dng l 2 (doanh nghip)

10) Th tc 10: sp_XemThongTinTaiKhoanTheNap a. Mc ch s dng th tc: Xem s d ti khon ca khch hng b. ngha cc tham s: - @MaNguoiDung (int) : m khch hng c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MaNguoiDung
H Qun Tr C S D Liu

48

2. Ly thng tin ti khon ang hot ng vi m khch hng ng vi @MaNguoiDung

11) Th tc 11: sp_LayIDTaiKhoanTheNap a. Mc ch s dng th tc: Ly M ti khon ca ngi dng b. ngha cc tham s: - @MaKH (int): m khch hng - @MaTaiKhoan (int) output: m ti khon tr v c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MaKH v @MaTaiKhoan 2. Ly m ti khon ca khch hng c m khch hng l @MaKH v gn cho @MaTaiKhoan

12) Th tc 12: sp_LoadLichSuNapThe a. Mc ch s dng th tc: Xem lch s np th ca 1 khch hng b. ngha cc tham s: - @MaNguoiDung (int): m khch hng c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MaNguoiDung 2. To bin @matk (output) nhn m ti khon ly c t kt qu thc thi th tc sp_LayIDTaiKhoanTheNap vi tham s u vo l @MaNguoiDung 3. Ly thng tin np th vi M ti khon tng ng vi @matk

13) Th tc 13 : sp_KiemTraTheNap a. Mc ch s dng th tc: kim tra tnh hp l ca th np b. ngha cc tham s: - @Series (varchar): s Series ca th np - @Code (varchar): m th np - @flag (int) output: bin nhn gi tr u ra (gi tr 0: th np khng ng, ngc li gi tr l m th nu ng) c. Cc bc ci t th tc: 1. Nhn tham s u vo l @Series v @Code

H Qun Tr C S D Liu

49

2. Ly MaTheNap t bng TheNap vi iu kin Series = @Series v Code @Code v trng thi ang hot ng ri gn cho tham s @flag

14) Th tc 14: sp_ThemTientaiKhoanTheNap a. Mc ch s dng th tc: thm tin vo ti khon ca khch hng b. ngha cc tham s: - @MaKH (int) : m khch hng - @MenhGia (decimal) : s tin thm vo ti khon c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MaKH v @MenhGia 2. Cng thm vo s d ti khon gi tr l @MenhGia cho khch hng c m l @MaKH

15) Th tc 15: sp_NapThe a. Mc ch s dng th tc: h tr khch hng np th vo ti khon b. ngha cc tham s: @MaKH (int) : m khch hng @Series (varchar) : s Series ca th @Code (varchar) : m th @flag (int) output: m th np ca khch hng c. Cc bc ci t th tc: 1. Nhn cc tham s u vo 2. Thc thi th tc sp_KiemTraTheNap kim tra tnh hp l ca s Series ,Code th v gn u ra (m th np) vo tham s flag 3. Nu th hp l th thc hin cc bc 4 , ngc li kt thc th tc 4. To bin @TrangThai (int) ly trng thi ca th np vi Series = @Series v Code = @Code. Nu @TrangThai = 1 th thc hin tip bc 5,6,7,8. Ngc li kt thc th tc. 5. Thc thi th tc sp_LayIDTaiKhoanTheNap ly m ti khon ca khch hng 6. Ly mnh gi v t l khuyn mi ca th va np

H Qun Tr C S D Liu

50

7. Thc thi th tc sp_ThemTientaiKhoanTheNap thm tin vo ti khon cho khch hng 8. Cp nht li tnh trng thnh th np cho Th np c MaTheNap =@flag

16) Th tc 16: sp_KhuyenMai a. Mc ch s dng th tc: cp nht t l khuyn mi cho th np b. ngha cc tham s: - @MenhGia (decimal): mnh gi c p dng khuyn mi ca th np - @TileKM (int): t l khuyn mi ca mnh gi c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MenhGia v @TileKM 2. Cp nht li t l khuyn mi cho cc th np cha c s dng c mnh gi bng vi @MenhGia. Nu @TileKM < 0 hoc @TileKM > 100 th rollback.

17) Th tc 17: sp_ThemTheNap a. Mc ch s dng th tc: h tr chc nng thm th np cho Admin b. ngha cc tham s: @Series (varchar) : Series ca th np @Code (varchar): Code ca th np @MenhGia (decimal): Mnh gi c. Cc bc ci t th tc: 1. Nhn cc tham s u vo 2. Kim tra xem trong bng th np tn ti Series = @Series v Code = @Code hay cha? 3. Nu cha th thc hin insert v database

18) Th tc 18 : sp_ThemVoucher a. Mc ch s dng th tc: h tr chc nng thm Voucher b. ngha cc tham s: - @TenVoucher (nvarchar): tn Voucher - @ThongTinChiTiet (nvarvchar): thng tin chi tit ca Voucher - @NgayBatDau (datetime): ngy bt u Voucher - @NgayKetThuc (datetime): ngy kt thc
H Qun Tr C S D Liu

51

- @GiaGoc (Decimal): gi gc - @GiaKhuyenMai (Decimal): gi khuyn mi - @SoLuong (int): s lng sn phm - @MaLoaiHinhDV (int): m loi hnh dch v - @MaDoanhNghiep (int): m doanh nghip cung cp Voucher - @UrlHinh (nvarchar): ng dn n file hnh ca Voucher c. Cc bc ci t th tc: 1. Nhn cc tham s u vo 2. Thc hin insert d liu

19) Th tc 19: sp_SuaVoucher a. Mc ch s dng th tc: h tr chc nng sa Voucher b. ngha cc tham s: - @MaVoucher (int): M Voucher - @TenVoucher (nvarchar): tn Voucher - @ThongTinChiTiet (nvarvchar): thng tin chi tit ca Voucher - @NgayBatDau (datetime): ngy bt u Voucher - @NgayKetThuc (datetime): ngy kt thc - @GiaGoc (Decimal): gi gc - @GiaKhuyenMai (Decimal): gi khuyn mi - @SoLuong (int): s lng sn phm - @MaLoaiHinhDV (int): m loi hnh dch v - @MaDoanhNghiep (int): m doanh nghip cung cp Voucher - @UrlHinh (nvarchar): ng dn n file hnh ca Voucher c. Cc bc ci t th tc: 1. Nhn cc tham s u vo 2. Thc hin update thng tin ca Voucher c m l @MaVoucher (tr @UrlHinh) 3. Kim tra nu @UrlHinh khc rng th thc hin update UrlHinh = @UrlHinh c MaVoucher = @MaVouch er

20) Th tc 20: sp_CapNhatTrangThaiVoucher a. Mc ch s dng th tc: cp nht li trng thi Voucher (ang hot ng hoc ngng hot ng) b. ngha cc tham s: - @MaVoucher (int): m Voucher cn cp nht c. Cc bc ci t th tc:
H Qun Tr C S D Liu

52

1. Nhn tham s u vo 2. To bin @TrangThaiCu (int) ly trng thi ca Voucher c m l @MAVoucher 3. To bin @TrangThaiMoi. Xt nu @TrangThaiCu = 0 th @TrangThaiMoi = 1 v ngc li. 4. Thc hin update li trng thi vi TrangThai = @TrangThaiMoi ca Voucher c m l @MaVoucher

21) Th tc 21: sp_LoadDSDonHang_all a. Mc ch s dng th tc: Ly danh sch tt c n hng b. ngha cc tham s: khng tham s c. Cc bc ci t th tc: 1. Thc hin cu lnh select tt c n hng

22) Th tc 22 : sp_LoadDSDonHang_ChuaThanhToan a. Mc ch s dng th tc: Ly danh sch cc n hng cha c khch hng thanh ton b. ngha cc tham s: khng tham s c. Cc bc ci t th tc: 1. Thc hin select cc n hng c trng thi bng 0 (cha c thanh ton)

23) Th tc 23: sp_LoadDSDonHang_DaThanhToan a. Mc ch s dng th tc: Ly danh sch cc n hng c khch hng thanh ton b. ngha cc tham s: khng tham s c. Cc bc ci t th tc: 1. Thc hin select cc n hng c trng thi bng 1 ( c thanh ton)

24) Th tc 24: LaySanPhamCungLoai a. Mc ch s dng th tc: ly danh sch cc sn phm cng loi vi sn phm m khch hng ang xem b. ngha cc tham s @mavoucher (int): m voucher
H Qun Tr C S D Liu

53

c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. To bin @maloai (int) ly MaLoaiHinhDV ca Voucher c m @mavoucher 3. Ly ra danh sch Voucher ang hot ng v c MaLoaiHinhDV = @maloai. 25) Th tc 25: LayThongTinDoanhNghiep a. Mc ch s dng: ly ra thng tin doanh nghip ang bn voucher . b. ngha cc tham s: @mavoucher (int): m voucher c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. To bin @madoanhnghiep (int) ly MaDoanhNghiep ca Voucher c m @mavoucher. 3. Ly ra doanh nghip c m l @madoanhnghiep trong bng NguoiDung

26) Th tc26 : sp_LoadDSDonHangChuaThanhToan a. Mc ch s dng th tc: Ngi xem cc n hng cha thanh ton. b. ngha cc tham s: @MaNguoiDung (int): m ngi dng c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. Load danh sch n hng c MaNguoiDung = @MaNguoiDung v c TrangThai = 0 (cha thanh ton).

27) Th tc 27: sp_LoadChiTietDonHang a. Mc ch s dng th tc: Khch hng xem cc n hng cha thanh ton. b. ngha cc tham s: @MaDonHang (int): m n hng c. Cc bc ci t th tc: 1. Nhn tham s u vo
H Qun Tr C S D Liu

54

2. Load chi tit n hng c MaDonHang = @MaDonHang v c TrangThai = 1 (ang hot ng).

28) Th tc 28: sp_ThemDonHang a. Mc ch s dng th tc: thm mt n hng cho khch hng b. ngha cc tham s: 1. @DiaChiGiaoHang (nvarchar(100)): a ch giao hng 2. @NgayGiao (datetime): ngy giao hng 3. @MaKhachHang (int): m khch hng 4. @MaLoaiHinhThanhToan (int): m loi hnh thanh ton 5. @MaDonHang (int) output: m n hng c. Cc bc ci t th tc: 1. Nhn tham s u vo. 2. m cc m n hng c trong bng n Hng. 3. M n hng hin ti s bng vi s lng cc m n hng trong bng n Hng + 1. 4. declare @NgayDatHang datetime:ly ngy hin ti ca h thng 5. To bin @trangthai. Nu @MaLoaiHinhThanhToan = 1 th @trangthai = 1 v ngc li. 6. Thc hin insert vo database.

29) Th tc 29: sp_ThemChiTietDonHang a. Mc ch s dng th tc: thm chi tit n hng cho mt n hng. b. ngha cc tham s: 1. @MaDonHang (int ): m n hng 2. @MaVoucher (int): m Voucher 3. @SoLuong ( int): s lng ca mt Voucher c khch hng mua. c. Cc bc ci t th tc: 1. Nhn tham s u vo. 2. @soluongconlai = s lng ca Voucher = @MaVoucher c trong bng Voucher 3. Nu @SoLuong<@soluongconlai

H Qun Tr C S D Liu

55

i.

@GiaKhuyenMai = ly GiaKhuyenMai c trong bng Voucher vi MaVoucher = @MaVoucher

ii. @ThanhTien = gi khuyn mi * s lng (@GiaKhuyenMai * @SoLuong) iii. Cp nht s lng cn li = @soluongconlai - @soluong vi trong bng Voucher vi MaVoucher = @ MaVoucher iv. Thc hin insert vo database.

30) Th tc 30: sp_ChuyenTien_Admin a. Mc ch s dng th tc: chuyn tin t ti khon ca khch hng sang ti khon ca Admin sau khi khch hng thanh ton n hng b. ngha cc tham s: - @MaKhachHang (int): m khch hng - @TienChuyen (decimal): s tin chuyn t ti khon khch hng sang ti khon ca Admin c. Cc bc ci t th tc: 1. Nhn cc tham s u vo 2. Ly s d ti khon ca Admin ti MaTaiKhoan = 1 ( Admin c 1 ti khon mc nh c m l 1) trong bng TaiKhoanTheNap 3. Ly s d ti khon ca khch hng ti MaKhanHang = @MaKhachHang trong bng TaiKhoanTheNap 4. Cng thm vo s d ti khon ca Amin vi gi tr thm l @TienChuyen 5. Tr s d ti khon ca khch hng ci gi tr tr l @TienChuyen 6. Cp nht li s d ti khon ca Admin v khch hng

31) Th tc 31: sp_TinhLaiTongTien a. Mc ch s dng th tc: Tnh li tng tin trong n hng khi thm hoc cp nht li Chi tit n hng thuc v n hng b. ngha cc tham s: @MaDonHang (int): m n hng @tongtien (decimal) output: tng tin ca n hng c. Cc bc ci t th tc: 1. Nhn tham s u vo

H Qun Tr C S D Liu

56

2. Tnh tng cc ThanhTien trong bng ChiTietDonHang vi MaDonHang l @MaDonHang 3. Cp nht li Tng tin ca n hng c m l @MaDonHang v gn cho @tongtien.

32) Th tc 32: sp_LoadThongTinNguoiDung a. Mc ch s dng th tc: ly thng tin ngi dng b. ngha cc tham s: @MaNguoiDung (int): m ngi dng c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MaNguoiDung 2. Thc hin select vi m ngi dng l @MaNguoiDung

33) Th tc 33: Load3SanPhamReNhat a. Mc ch s dng: ly cc voucher c gi bn r nht b. ngha cc tham s: khng c tham s c. Cc bc ci t th tc: 1. Sp xp danh sch cc Voucher ang hot ng tng dn theo GiaKhuyenMai. Ly ra 6 voucher u tin.

34) Th tc 34: LoadDealHot a. Mc ch s dng: ly cc voucher c gi bn r nht b. ngha cc tham s: khng c tham s c. Cc bc ci t th tc: 1. Sp xp danh sch cc Voucher ang hot ng tng dn theo SoLuong. Ly ra 3 voucher u tin.

35) Th tc 35: LoadDealMoi a. Mc ch s dng: ly cc voucher c gi bn r nht b. ngha cc tham s: khng c tham s c. Cc bc ci t th tc:
H Qun Tr C S D Liu

57

1. Sp xp danh sch cc Voucher ang hot ng tng dn theo NgayBatDau. Ly ra 18 voucher u tin.

36) Th tc 36: LoadDSVoucher_DN_NgungHD a. Mc ch s dng: ly danh sch cc voucher ngng hot ng ca 1 doanh nghip. b. ngha cc tham s: @madn (int): m doanh nghip c. Cc bc ci t th tc: 1. Ly ra doanh sch cc voucher c MaDoanhNghiep = @madn v TrangThai = 0 (ngng hot ng). 37) Th tc 37: sp_CapNhatHopDong a. Mc ch s dng: Admin cp nht li trng thi ca hp ng. b. ngha cc tham s: @MaHopDong (int): m hp ng c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. To bin @TrangThaiCu (int) ly trng thi ca HopDong c m l @MaHopDong 3. To bin @TrangThaiMoi. Xt nu @TrangThaiCu = 0 th @TrangThaiMoi = 1 v ngc li. 4. Thc hin update li trng thi vi TrangThai = @TrangThaiMoi ca HopDong c m l @MaHopDong 38) Th tc 38: sp_CapNhatTrangThaiDonHang a. Mc ch s dng: Admin cp nht li trng thi n hng b. ngha cc tham s: @MaDonHang (int): m n hng c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. To bin @TrangThaiCu (int) ly trng thi ca DonHang c m l @MaDonHang
H Qun Tr C S D Liu

58

3. To bin @TrangThaiMoi. Xt nu @TrangThaiCu = 0 th @TrangThaiMoi = 1 v ngc li. 4. Thc hin update li trng thi vi TrangThai = @TrangThaiMoi ca DonHang c m l @MaDonHang 39) Th tc 39: sp_DanhSachVoucherDangHoatDong_DoanhNghiep a. Mc ch s dng: Ly danh sch cc voucher ang hot ng ca 1 doanh nghip. b. ngha cc tham s: @MaDN (int): m doanh nghip c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. Lay danh sch Voucher c MaDoanhNghiep = @MaDN v Trangthai = 1 40) Th tc 40: sp_DanhSachVoucherNgungHoatDong_DoanhNghiep a. Mc ch s dng: Ly danh sch cc voucher ngng hot ng ca 1 doanh nghip. b. ngha cc tham s: @MaDN (int): m doanh nghip c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. Ly danh sch Voucher c MaDoanhNghiep = @MaDN v Trangthai = 0

41) Th tc 41: sp_GiamGiaKhuyenMai a. Mc ch s dng: gim gi khuyn mi ca 1 voucher b. ngha cc tham s: @MaVoucher (int): m voucher @GiaGiam (decimal): gi gim c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. To bin @GiaKhuyenMai nhn gi tr GiaKhuyenMai t Voucher c MaVoucher = @MaVoucher 3. @GiaKhuyenMai = @GiaKhuyenMai + @GiaGiam
H Qun Tr C S D Liu

59

4. Cp nht li GiaKhuyenMai = @GiaKhuyenMai ca Voucher c MaVoucher = @MaVoucher.

42) Th tc 42: sp_LayDSThe_TT0 a. Mc ch s dng: ly danh sch th np s dng b. ngha cc tham s: khng c tham s c. Cc bc ci t th tc: 1. Ly danh sch th np c TrangThai = 0

43) Th tc 43: sp_LayDSThe_TT1 a. Mc ch s dng: ly danh sch th np cha c s dng b. ngha cc tham s: khng c tham s c. Cc bc ci t th tc: 1. Ly danh sch th np c TrangThai = 1

44) Th tc 44: sp_LaySanPhamTheoNgay a. Mc ch s dng: ly sn phm theo ngy b. ngha cc tham s: @giatri (int): gi tr c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. To bin @ngayhn (datetime). Nu @giatri = 1 th select danh sch voucher ang hot ng co NgayBatDau = @ngayhn v ngc li. 45) Th tc 45: sp_LayThongTinTaiKhoan a. Mc ch s dng: ly thng tin ti khon khch hng b. ngha cc tham s: @MaKh (int): m khch hng c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. Select bng TaiKhoanTheNap vi MaKhachHang = @MaKH
H Qun Tr C S D Liu

60

46) Th tc 46: sp_LoadDN a. Mc ch s dng: load danh sch doanh nghip b. ngha cc tham s: khng c tham s c. Cc bc ci t th tc: 1. Ly danh sch sch doanh nghip trong bng NguoiDung vi MaLoaiNguoiDung = 2 (doanh nghip) v TrangThai = 1 (ang hot ng)

47) Th tc 47: sp_LoadDoanhNghiep a. Mc ch s dng: load danh sch doanh nghip b. ngha cc tham s: khng c tham s c. Cc bc ci t th tc: 1. Ly danh sch sch doanh nghip trong bng NguoiDung vi MaLoaiNguoiDung = 2 (doanh nghip) v TrangThai = 1 (ang hot ng)

48) Th tc 48: sp_LoadDonHangKH a. Mc ch s dng: load danh sch n hng ca 1 khch hng b. ngha cc tham s: @makh (int): m khch hng @soluong (int) output: s lng c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. m s lng n hng ca khch hng c MaKhachHang = @makh gn cho @soluong 3. Ly danh sch n hng ca khch hng c m @makh

49) Th tc 49: sp_LoadDSHopDong a. Mc ch s dng: Admin xem danh sch hp ng


H Qun Tr C S D Liu

61

b. ngha cc tham s: khng c tham s c. Cc bc ci t th tc: 1. Ly danh sch hp ng t c s d liu

50) Th tc 50: sp_LoadDSMenhGia a. Mc ch s dng: Load danh sch cc mnh gi ca th np b. ngha cc tham s: khng c tham s c. Cc bc ci t th tc: 1. Ly danh sch cc mnh gi trong bng TheNap

51) Th tc 51: sp_LoadDSVoucher_doanhnghiep_all a. Mc ch s dng: load danh sch voucher theo doanh nghip b. ngha cc tham s: @madn (int): m doanh nghip c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. Ly danh sch voucher c MaDoanhNghiep = @madn

52) Th tc 52: Sp_LoadDSVoucher_TheoDoanhNghiep a. Mc ch s dng: load danh sch voucher theo doanh nghip b. ngha cc tham s: @madn (int): m doanh nghip c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. Ly danh sch voucher c MaDoanhNghiep = @madn v TrangThai = 1 (ang hot ng).

53) Th tc 53: sp_ThemHopDong a. Mc ch s dng: admin thm mt hp ng mi


H Qun Tr C S D Liu

62

b. ngha cc tham s: @ngayky (datetime): ngy k @thoihan (datetime): thi hn @mota (nvarchar): m t @madn (int): m doanh nghip c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. Insert thng tin ca hp ng mi xung csdl

54) Th tc 54: sp_ThongTinHopDong_DoanhNghiep a. Mc ch s dng: Ly danh sch cc hp ng ca 1 doanh nghip b. ngha cc tham s: @MaDN (int): m doanh nghip c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. Ly danh sch hp ng c MaDoanhNghiep = @MaDN.

55) Th tc 55: sp_TimKiemTheoGia a. Mc ch s dng: Ly danh sch cc voucher theo gi chn b. ngha cc tham s: @MucGia1 (decimal): gi nm trong khong t mc gi 1 @MucGia2 (decimal): n mc gi 2 @soluong (int) output: s lng c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. m s lng voucher ang hot ng c GiaKhuyenMai nm trong khang t @MucGia1 n @MucGia2 v gn cho @soluong 3. Select cc voucher ang hot ng c GiaKhuyenMai nm trong khang t @MucGia1 n @MucGia2

H Qun Tr C S D Liu

63

56) Th tc 56: sp_TimKiemTheoTen a. Mc ch s dng: Ly danh sch cc voucher theo tn c nhp b. ngha cc tham s: @Ten (nvarchar): tn @soluong (int) output: s lng c. Cc bc ci t th tc: 1. Nhn tham s u vo 2. m s lng voucher ang hot ng c TenVoucher c cha @Ten 3. Select cc voucher ang hot ng c TenVoucher c cha @Ten

57) Th tc 57: sp_XemChiTietVoucher0 a. Mc ch s dng th tc: Xem thng tin chi tit ca 1 Voucher ang ngng hot ng b. ngha cc tham s: @MaVoucher (int) : m Voucher cn xem thng tin c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MaVoucher 2. Ly thng tin chi tit ca Voucher c m l @MaVoucher v TrangThai = 0 (ngng hot ng). 58) Th tc 58: sp_XemDanhSachHopDongConThoiHan a. Mc ch s dng th tc: Xem danh sch hp ng cn thi hn b. ngha cc tham s: - @maDN (int) : m doanh nghip - @soluong (int) output: s lng c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MaVoucher 2. m s lng hp ng ca doanh nghip c m l @maDN v TrangThai = 1 3. Ly danh sch hp ng ca doanh nghip c m l @maDN v TrangThai = 1

59) Th tc 59: sp_XemDanhSachHopDongHetThoiHan


H Qun Tr C S D Liu

64

a. Mc ch s dng th tc: Xem danh sch hp ng ht thi hn b. ngha cc tham s: - @maDN (int) : m doanh nghip - @soluong (int) output: s lng c. Cc bc ci t th tc: 1. Nhn tham s u vo l @MaVoucher 2. m s lng hp ng ca doanh nghip c m l @maDN v TrangThai = 0 3. Ly danh sch hp ng ca doanh nghip c m l @maDN v TrangThai = 0
4.2 M t tnh hung tranh chp ng thi 1. Trng hp 1: a. Tnh hung: Hai giao tc T1 v T2 cng cp nht l i gi khuyn mi ca mt Voucher trong cng mt thi im. b. M T: M t T1: T1 nhn cc tham s u vo c ga khuyn mi ca Voucher Cp nht li gi khuyn mi ca Voucher M t T2: T2 nhn cc tham s u vo c. Kch Bn: T1 Cp nht gi khuyn mi ca Voucher Bt u giao tc T1(Begin Tran) Bt u giao tc T2 (Begin Tran) c gi khuyn mi c gi khuyn mi Cp nht li gi khuyn mi Cp nht li gi khuyn mi
H Qun Tr C S D Liu

c ga khuyn mi ca Voucher

Cp nht li gi khuyn mi ca Voucher

T2 Cp nht gi khuyn mi ca Voucher

65

Kt thc giao tc(Commit Tran) Kt thc giao tc(Commit Tran)

d. Nhn Xt: Hai giao tc cng cp nht ng thi trn cng 1 tp d liu nhng ch c 1 giao tc thc hin thnh cng , dn n tnh trng mt d liu cp nht (lost update) 2. Trng hp 2: a. Tnh hung: Hai giao tc T1, T2 thm chi tit n hng cng 1 thi im vi cng m Voucher (2 khch hng cng mua 1 Voucher ti 1 thi im) b. M T: M t T1: T1 thm chi tit n hng v cp nht li s lng cn li ca voucher A T1 nhn tham s u vo l @MaVoucher,@MaDonHang v @SoLuong ( s lng mua ) Ly s lng cn li ca voucher A t @Mavoucher gn vo bin @soluongconlai Nu s lng cn li ln hn s lng mua th mi cho thm chi tit n hng Tnh thnh tin = Gi khuyn mi * s lng S lng cn li = s lng cn li s lng mua Cp nht s lng cn l i cho voucher A Thm chi tit n hng M t T2: T2 thm chi tit n hng v cp nht li s lng cn li ca voucher A T1 nhn tham s u vo l @MaVoucher,@MaDonHang v @SoLuong ( s lng mua ) Ly s lng cn li ca voucher A t @Mavoucher gn vo bin @soluongconlai
H Qun Tr C S D Liu

66

Nu s lng cn li ln hn hoc bng s lng mua th mi cho thm chi tit n hng Tnh thnh tin = Gi khuyn mi * s lng S lng cn li = s lng cn li s lng mua Cp nht s lng cn l i cho voucher A Thm chi tit n hng c. Kch Bn: T1 Mua Voucher A Bt u giao tc T1 ( Begin Tran) Bt u giao tc T2 ( Begin Tran) Ly s lng cn li ca Voucher Ly s lng cn li c a Voucher Tnh thnh tin cho CTH 2 Tnh thnh tin CTH 1 Cp nht s lng cn li Voucher A Thm CTH 1 vo bng Chi tit n hng Cp nht s lng cn li Voucher A Thm CTH 2 vo bng Chi tit n hng Kt thc Giao Tc T1 ( Commit Tran) Kt thc Giao Tc T2 ( Commit Tran) d. Nhn Xt: Hai giao tc cng thm chi tit n hng vi M Voucher nhn vo l nh nhau (2 khch hng cng mua 1 Voucher), 2 giao tc cng thc hin trn 1n v d liu nhng ch c 1 giao tc thc hin thnh cng , dn n tnh trng mt d liu cp nht (lost update) 3. Trng hp 3: a. Tnh hung: Giao tc T1 thc hin cp nht t l khuyn mi v cha hon tt giao tc, trong khi T2 thc hin hnh vi np tin, T2 thc hin tnh ton trn t l khuyn mi ca T1 va cp nht, nhng sau T1 rollback T2 Mua Voucher A

H Qun Tr C S D Liu

67

b. M T: M t T1: ( T1 cp nht t l khuyn mi t l khuyn mi khng c >100 v <0) T1 nhn tham s u vo l t l khuyn mi v mnh gi p dng Thc hi n cp nht cc mnh gi tng ng vi @MenhGia vi t l khuyn mi mi T l khuyn mi khng hp l Rollback Tran M t T2: T2 thc hin hnh vi np th cho khch hng Nhn vo @MaKH , @Serrie v @Code Kim tra tnh hp l ca th Ly mnh gi v t l khuyn mi ca th Thc hin thm tin cho khch hng c m l @MaKH vi s tin = mnh gi * t l khuyn mi Cp nht li tnh trng c a th np ( np) c. Kch Bn: T1 Cp nht t l khuyn mi Bt u giao tc T1 ( Begin Tran) Cp nht t l khuyn mi ca th np Bt u giao tc T2 ( Begin Tran) Kim tra tnh hp l ca th Ly mnh gi v t l khuyn mi ca th Thm tin cho khch hng Kim tra tnh hp l ca t l khuyn mi T l khuyn mi khng hp l Hy Giao Tc T1 ( Rollback Tran) Cp nht li tnh trng th np Kt thc Giao Tc T2 ( Commit Tran) d. Nhn Xt: T2 c d liu do T1 cp nht trc khi T1 rollback T2 c d liu rc (Dirty Read) T2 Np th

H Qun Tr C S D Liu

68

4. Trng hp 4: a. Tnh hung: Giao tc T1 thc hin cp nht gi khuyn mi ca Voucher m khi cp nht gi khuyn mi nhng cha hon tt vic ghi, trong khi T2 thc hin thm vo chi tit n hng vi gi khuyn mi m T1 va cp nht, nhng sau T1 rollback b. M T: M t T1: Nhn cc tham s u vo Cp nht thng tin voucher Ch giao tc T2 thc hi n Ly gi gc ca @MaVoucher so snh vi gi khuyn mi Gi khuyn mi khng hp l => T1 b Rollback

M t T2: Nhn cc tham s u vo Ly s lng ca @MaVoucher gn cho @soluongconlai Kim tra s lng mua @MaVoucher: o Nu s lng mua <= @soluongconlai o Ly gi khuyn mi ca @maVoucher o Tnh thnh tin o Cp nht @soluongconlai c a @voucher o Thm chi tit n hng c. Kch Bn: T1 Cp nht thng tin Voucher Bt u giao tc (Begin Tran) Bt u giao tc (Begin Tran) Thc hin cp nht thng tin Voucher (cp nht gi khuyn mi) c s l0ng cn li ca Voucher T2 Thm chi tit n hng

H Qun Tr C S D Liu

69

Cp nht s lng cn l i ca Voucher Thm chi tit n hng Hy giao tc (Rollback tran) Kt thc giao tc (Commit tran)

d. Nhn xt: Giao tc T1 thc hin vic cp nht li gi khuyn mi , trong khi giao tc T2 c gi khuyn mi m T1 va cp nht tnh thnh tin thm vo chi tit n hng. Nhng gi khuyn mi m T1 cp nht li ln hn gi gc nn T1 b Rollback lm cho T2 c sai d liu =>Dirty Read 5. Trng hp 5: a. Tnh hung: Giao tc T1 thc hin hnh vi np th ,trong khi T2 cng thc hin hnh vi np th ( 2 khch hng khc nhau cng np chung 1 th cng 1 thi im) b. M T: M t T1: Nhn tham s @MaKH, @Series , @Code Kim tra th np hp l Nu th np hp l, thc hin ly M ti khon theo c a khch hng Thc hi n cng thm tin vo ti khon cho khch hng M t T2: Nhn tham s @MaKH, @Series , @Code Kim tra th np hp l Nu th np hp l, thc hin ly M ti khon theo @MaKH Thc hi n cng thm tin vo ti khon cho khch hng c. Kch Bn: T1 Thc hin np th Bt u giao tc (Begin Tran) Bt u giao tc ( Begin Tran) Kim tra tnh th hp l ca th np Ly thng tin th np T2 Thc hin np th

H Qun Tr C S D Liu

70

Kim tra tnh th hp l ca th np Ly thng tin th np Cp nht li thng tin th np Cng thm ti khon cho khch hng Cp nht li thng tin th np Cng thm ti khon cho khch hng Kt thc giao tc (Commit Tran) Kt thc giao tc (Commit Tran) d. Nhn Xt: 2 giao tc T1 v T2 cng thc hin hnh vi np th nhng ch c 1 giao tc thc hin thnh cng = > xy ra li Lost update

6. Trng hp 6: a. Tnh hung: Giao tc T1 thc hin hnh vi tm kim Voucher c gi trong khong t MucGia1 n MucGia2, trong khi giao tc T2 thc hin thm (hoc cp nht) Voucher cng c gi trong khong t MucGia1 n MucGia2. Giao tc T1 c s lng Voucher c gi trong khong tMucGia1 n MucGia2 Giao tc T2 thc hin thm (hoc cp nht) Voucher Giao tc T1 load danh sch Voucher tm c b. M T: M t T1: Nhn tham s @MucGia1, @MucGia2 , @Soluong output Thc hi n ly s lng sn phm Thc hi n ly danh sch sn phm tm c Kt thc giao tc M t T2: Nhn tham s cc tham s u vo (thng tin Voucher) Thc hin thm (hoc cp nht) vo c s d liu Kt thc giao tc

H Qun Tr C S D Liu

71

c. Kch Bn: T1 Tm kim Voucher Bt u giao tc (Begin Tran) Bt u giao tc (Begin Tran) c s lng Voucher tha tiu ch Thc hin thm (hoc cp nht) Voucher mi vo c s d liu Kt thc giao tc (Commit Tran) Ly danh sch Voucher tha tiu ch Kt thc giao tc (Commit Tran) d. Nhn xt:Danh sch Voucher T1 c c s nhiu hn s lng m T1 c trc , d liu khng nht qun (li Phantom) T2 Thm (hoc cp nht) Voucher

7. Trng hp 7: a. Tnh hung: Giao tc T1 thc hin hnh vi tm kim Voucher theo 1 T kha no (tm kim theo tn), trong khi giao tc T2 thc hin thm (hoc cp nht) Voucher cng c tn cha t . Giao tc T1 c s lng Voucher c tn cn tm Giao tc T2 thc hin thm (hoc cp nht) Voucher Giao tc T1 load danh sch Voucher tm c b. M T: M t T1: Nhn tham s @Ten , @Soluong output Thc hi n ly s lng sn phm Thc hi n ly danh sch sn phm tm c Kt thc giao tc M t T2: Nhn tham s cc tham s u vo (thng tin Voucher)
H Qun Tr C S D Liu

72

Thc hin thm (hoc cp nht) Voucher vo c s d liu Kt thc giao tc c. Kch Bn: T1 Tm kim Voucher Bt u giao tc (Begin Tran) Bt u giao tc (Begin Tran) c s lng Voucher tha tiu ch Thc hin thm (hoc cp nht) Voucher mi vo c s d liu Kt thc giao tc (Commit Tran) Ly danh sch Voucher tha tiu ch Kt thc giao tc (Commit Tran) d. Nhn xt: Danh sch Voucher T1 c c s nhiu hn s lng m T1 c trc , d liu khng nht qun ( li Phantom) T2 Thm (hoc cp nht) Voucher

8. Trng hp 8: a. Tnh hung: Giao tc T1 thc hin ly danh sch cc hp ng vn cn thi hn , trong khi Giao tc T2 thc hin thm 1 hp ng mi T1 c s lng hp ng vn cn thi hn T2 thc hin thm hp ng mi T1 ly danh sch hp ng vn cn thi hn b. M t: M t T1: c s lng hp ng vn cn thi hn Ly danh sch hp ng vn cn thi hn Kt thc giao tc M t T2: Nhn tham s u vo (thng tin hp ng) Thc hin thm vo c s d liu Kt thc giao tc
H Qun Tr C S D Liu

73

c. Kch bn: T1 c s lng v ly danh sch hp ng vn cn thi hn Bt u giao tc (Begin Tran) c s lng hp ng vn cn thi h n Bt u giao tc (Begin Tran) Thc hin thm hp ng vo c s d liu Kt thc giao tc (Commit Tran) Ly danh sch hp ng vn cn thi h n Kt thc giao tc (Commit Tran) T2 Thm hp ng mi

d. Nhn xt: Danh sch hp ng T1 ly c s nhiu hn s lng c trc => d liu khng nht qun (li phantom) 9. Trng hp 9: a. Tnh hung: Giao tc T1 thc hin ly danh sch cc hp ng ht thi hn , trong khi Giao tc T2 thc hin cp nht li trng thi hp ng ( ht hn) T1 c s lng hp ng ht thi hn T2 thc cp nht li trng thi hp ng T1 ly danh sch hp ng ht thi hn b. M t: M t T1: c s lng hp ng ht thi hn Ly danh sch hp ng ht thi h n Kt thc giao tc M t T2: Nhn tham s u vo (thng tin hp ng)

H Qun Tr C S D Liu

74

Thc hi n cp nht li trng thi hp ng thnh ht thi hn Kt thc giao tc c. Kch bn: T1 c s lng v ly danh sch hp ng ht th i hn Bt u giao tc (Begin Tran) c s lng hp ng ht thi hn Bt u giao tc (Begin Tran) Thc hin cp nht li trng thi hp ng Kt thc giao tc (Commit Tran) Ly danh sch hp ng ht thi h n Kt thc giao tc (Commit Tran) T2 Cp nht li tnh trng hp ng

d. Nhn xt: Danh sch hp ng T1 ly c s nhiu hn s lng c trc => d liu khng nht qun (li phantom) 10. Trng hp 10: a. Tnh hung: Giao tc T1 thc hin hnh vi tm kim Voucher c gi trong khong t MucGia1 n MucGia2, trong khi giao tc T2 thc hin cp nht Voucher (ang c gi trong khong t MucGia1 n MucGia2) m sau khi cp nht th gi khng cn nm trong khong MucGia1 n MucGia2 na Giao tc T1 c s lng Voucher c gi trong khong t MucGia1 n MucGia2 Giao tc T2 thc hin cp nht gi Voucher Giao tc T1 load danh sch Voucher tm c b. M T: M t T1: Nhn tham s @MucGia1, @MucGia2 , @Soluong output Thc hi n ly s lng sn phm

H Qun Tr C S D Liu

75

Thc hi n ly danh sch sn phm tm c Kt thc giao tc M t T2: Nhn tham s cc tham s u vo (thng tin Voucher) Thc hi n cp nhtVoucher Kt thc giao tc c. Kch Bn: T1 Tm kim Voucher Bt u giao tc (Begin Tran) Bt u giao tc (Begin Tran) c s lng Voucher tha tiu ch Thc hin cp nht Voucher Kt thc giao tc (Commit Tran) Ly danh sch Voucher tha tiu ch Kt thc giao tc (Commit Tran) d. Nhn xt: Danh sch Voucher T1 c c s t hn s lng m T1 c trc , d liu khng nht qun => li Unrepeatable Read 11. Trng hp 11: a. Tnh hung: Giao tc T1 thc hin hnh vi np th ,trong khi T2 cng thc hin hnh vi np th ( 2 khch hng khc nhau cng np chung 1 th cng 1 thi im) b. M T: M t T1: Nhn tham s @MaKH, @Series , @Code Kim tra th np hp l Nu th np hp l, thc hin ly M ti khon theo c a khch hng Thc hi nhin cng thm tin vo ti khon cho khch hng M t T2: Nhn tham s @MaKH, @Series , @Code Kim tra th np hp l
H Qun Tr C S D Liu

T2 Thm (hoc cp nht) Voucher

76

Nu th np hp l, thc hin ly M ti khon theo @MaKH Thc hi n hin cng thm tin vo ti khon cho khch hng c. Kch Bn: T1 Thc hin np th Bt u giao tc (Begin Tran) Kim tra tnh th hp l ca th np Kim tra tnh th hp l ca th np Ly thng tin th np Cp nht li thng tin th np Cng thm ti khon cho khch hng Ly thng tin th np Cp nht li thng tin th np Cng thm ti khon cho khch hng Kt thc giao tc (Commit Tran) Kt thc giao tc (Commit Tran) d. Nhn Xt: T1 c gi tr li thi n v d liu trng thi do T2 cp nht dn n T1 np th hp l nhng khng c cng tin trong ti khon => l i Unrepeatable Read 4.3 M t gii php x l 1. Trng hp 1: a. Gii quyt: - S dng mc c lp Repeatable Read v Lock hints (updlock) gii quyt - Gii thch : o C 2 giao tc ban u s c cng 1 n v d liu(gi s gi l n v d liu A) cng 1 thi im( trn cng 1 m Voucher) = > c 2 giao tc cng gi Shared Lock o S dng mc c lp Repeatable Read cho php T1 v T2 c th ghi trn d liu tha iu kin ang c Shared Lock (trn A) T2 Thc hin np th Bt u giao tc (Begin Tran)

H Qun Tr C S D Liu

77

o Sau T1 mun thc hin ghi trn A cn phi xin Exclusive Lock nhng lc ny T2 ang gi Shared Lock trn A v cng mun thc hin ghi A nn khng th nh Shared Lock h qun tr cp Exclusive Lock cho T1 c = > 2 giao tc ri vo tnh trng ch i ln nhau ( ch bn kia nh kha) => xy ra deadlock. o S dng Updlock nng cp t Shared Lock ln Exclusive Lock, t i 1 thi im ch c 1 Updlock c pht trn 1 n v d liu nn s m bo c vic giao tc ny c th nng cp Shared Lock ln Exclusive Lock m khng cn phi ch giao tc kia nh kha. => m bo tnh ng n cho 2 giao tc thc hin thnh cng vic c p nht thng tin trn cng 1 Voucher ti cng 1 thi im b. X l ti Stored Procedure:

T1
create proc sp_GiamGiaKhuyenMai_fix @MaVoucher int, @GiaGiam decimal as begin begin tran set transaction isolation level repeatable read declare @GiaKhuyenMai decimal select @GiaKhuyenMai = GiaKhuyenMai from Voucher with (updlock) where MaVoucher = @MaVoucher set @GiaKhuyenMai = @GiaKhuyenMai + @GiaGiam waitfor delay '00:00:15'

T2

create proc sp_GiamGiaKhuyenMai_fix @MaVoucher int, @GiaGiam decimal as begin begin tran set transaction isolation level repeatable read declare @GiaKhuyenMai decimal select @GiaKhuyenMai = GiaKhuyenMai from Voucher with (updlock) where MaVoucher = @MaVoucher
H Qun Tr C S D Liu

78

set @GiaKhuyenMai = @GiaKhuyenMai + @GiaGiam waitfor delay '00:00:15' update Voucher set GiaKhuyenMai = @GiaKhuyenMai where MaVoucher = @MaVoucher if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran end go update Voucher set GiaKhuyenMai = @GiaKhuyenMai where MaVoucher = @MaVoucher if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran end go

2. Trng hp 2: a. Gii quyt: - S dng mc c lp Repeatable Read v Lock hints (updlock) gii quyt - Gii thch : o C 2 giao tc ban u s c cng 1 n v d liu (s lng cn li c a Voucher, gi s gi l n v d liu A) cng 1 thi im ( trn cng 1 m Voucher) = > c 2 giao tc cng gi Shared Lock trn A o S dng c lp Repeatable Read cho php T1 v T2 c th ghi trn d liu tha i u kin ang c Shared Lock (d liu A) o Sau T1 mun thc hin ghi trn A cn phi xin Exclusive Lock nhng lc ny T2 ang gi Shared Lock v cng mun thc hin ghi
H Qun Tr C S D Liu

79

trn A nn khng th nh Shared Lock h qun tr cp Exclusive Lock cho T1 c = > 2 giao tc ri vo tnh trng ch i ln nhau ( ch bn kia nh kha) => xy ra deadlock. o S dng Updlock nng cp t Shared Lock ln Exclusive Lock, t i 1 thi im ch c 1 Updlock c pht trn 1 n v d liu nn s m bo c vic giao tc ny c th nng cp Shared Lock ln Exclusive Lock m khng cn phi ch giao tc kia nh kha. =>m bo tnh hp l v nht qun d liu khi 2 khch hng cng mua 1 Voucher ti cng 1 thi im b. X l ti Stored Procedure:

T1
create proc sp_ThemChiTietDonHang_fix @MaDonHang int, @MaVoucher int, @SoLuong int, @flag int output -- bin kim tra c thm c hay ko? as begin begin tran set transaction isolation level repeatable read declare @soluongconlai int select @soluongconlai=SoLuong from Voucher with(updlock) where MaVoucher=@MaVoucher waitfor delay '00:00:05'

T2

create proc sp_ThemChiTietDonHang_fix @MaDonHang int, @MaVoucher int, @SoLuong int, @flag int output -- bin kim tra c thm c hay ko? as begin begin tran set transaction isolation level repeatable read declare @soluongconlai int select @soluongconlai=SoLuong from Voucher with(updlock) where MaVoucher=@MaVoucher
H Qun Tr C S D Liu

80

waitfor delay '00:00:05' if(@SoLuong<=@soluongconlai) begin declare @GiaKhuyenMai decimal set @GiaKhuyenMai = (select GiaKhuyenMai from Voucher where MaVoucher = @MaVoucher) declare @ThanhTien decimal set @ThanhTien = @GiaKhuyenMai * @SoLuong ---cap nhat lai so luong con lai cua voucher update Voucher set SoLuong=@soluongconlai-@SoLuong where MaVoucher=@MaVoucher --Them chi tiet don hang insert into ChiTietDonHang(MaDonHang,MaVoucher,S oLuong,ThanhTien) values (@MaDonHang,@MaVoucher,@SoLuong, @ThanhTien) set @flag = 1 end else -- @SoLuong > @soluongconlai begin print N's lng Voucher cn li khng ' set @flag = -1 end if(@@ERROR <>0) begin print 'Giao tc b li' rollback tran return end commit tran end go if(@SoLuong<=@soluongconlai) begin declare @GiaKhuyenMai decimal set @GiaKhuyenMai = (select GiaKhuyenMai from Voucher where MaVoucher = @MaVoucher) declare @ThanhTien decimal
H Qun Tr C S D Liu

81

set @ThanhTien = @GiaKhuyenMai * @SoLuong ---cap nhat lai so luong con lai cua voucher update Voucher set SoLuong=@soluongconlai-@SoLuong where MaVoucher=@MaVoucher --Them chi tiet don hang insert into ChiTietDonHang(MaDonHang,MaVoucher,S oLuong,ThanhTien) values (@MaDonHang,@MaVoucher,@SoLuong, @ThanhTien) set @flag = 1 end else -- @SoLuong > @soluongconlai begin print N's lng Voucher cn li khng ' set @flag = -1 end if(@@ERROR <>0) begin print 'Giao tc b li' rollback tran return end commit tran end go

3. Trng hp 3: a. Gii quyt : - S dng mc c lp Read Committed cho giao tc T2 - Gii thch: o T1 cp nht t l khuyn mi v T2 c t l khuyn mi trn cng 1 Th np ti cng 1 thi im => T1, T2 cng thc hin thao tc trn cng 1 n v d liu ti cng 1 thi i m (gi s gi l n v d liu A) o Khi T1 thc hin ghi (update li t l khuyn mi) v cha kt thc giao tc, tc l T1 ang gi Exclusive Lock trn n v d li u A o Tip theo T2 thc hin c trn n v d liu A, do T2 ang mc c lp Read Committed nn s phi xin Shared Lock trn A, m T1 ang gi

H Qun Tr C S D Liu

82

Exclusive Lock nn T2 khng th xin c Shared Lock cho n khi T1 hon tt vic ghi trn A(Commit) o T2 ch c c A khi T1 Commit => m bo tnh ng n ca d liu T2 c c b. X l ti Stored Procedure:

T1 Cp nht t l khuyn mi
create proc sp_KhuyenMai @MenhGia decimal(18,0),---menh gia dc ap dung khuyen mai @TileKM int---tile khuyen mai AS BEGIN begin tran set transaction isolation level read uncommitted UPDATE TheNap SET TiLeKhuyenMai=@TileKM WHERE MenhGia=@MenhGia and TrangThai=1 waitfor delay '00:00:12'

T2 Np th

create proc sp_NapThe_fix_3 @MaKH int, @Series varchar(50), @Code varchar (50), @flag int output AS BEGIN set transaction isolation level read committed EXEC sp_KiemTraTheNap @Series,@Code,@flag output---kiem tra the IF(@flag<>0)---neu the hop le Begin begin tran --lay trang thai the nap declare @TrangThai int select @TrangThai = TrangThai from TheNap where Series = @Series and Code = @Code waitfor delay '00:00:05' if(@TrangThai = 1) begin declare @matk int ---lay ra ma tai khoan tu ma khach hang
H Qun Tr C S D Liu

83

EXEC sp_LayIDTaiKhoanTheNap @MaKH,@matk output ---cap nhat bang the nap ve ngay nap va ma khach hang da nap the , va ngung hoat dong the declare @menhgia decimal(18,0) declare @tilekm int ----Lay ra menh gia va ti le khuyen mai cua the vua nap Select @menhgia=MenhGia,@tilekm=TiLeKhuyen Mai from TheNap where MaTheNap=@flag set @menhgia = @menhgia+(@menhgia * @tilekm)/100 -tinh lai menh gia the nap co khuyen mai ----Thuc hien cong tien cho tai khoan EXEC sp_ThemTientaiKhoanTheNap @MaKH,@menhgia Update TheNap set MaTaiKhoan=@matk,NgayNap=GETDATE( ),TrangThai=0 where MaTheNap=@flag end if(@TileKM <0 or @TiLeKM > 100) begin raiserror('T l khng hp l',1,0) rollback tran return end if(@@ERROR <>0 ) begin print N'Giao tc b li' rollback tran return end commit tran END GO if(@@ERROR <>0) begin print N'Giao tc b li'
H Qun Tr C S D Liu

84

rollback tran return end commit tran END END go

4. Trng hp 4: a. Gii quyt : - S dng mc c lp Read Committed cho giao tc T2 - Gii thch: o T1 cp nht gi khuyn mi v T2 c gi khuyn mi( thm chi tit n hng) trn cng 1 Voucher cng 1 thi im => T1, T2 cng thc hin thao tc trn cng 1 n v d li u ti cng 1 thi im (gi s gi l n v d liu A) o Khi T1 thc hin ghi (update li gi khuyn mi) v cha kt thc giao tc, tc l T1 ang gi Exclusive Lock trn n v d li u A o Tip theo T2 thc hin c (c gi khuyn mi) trn n v d liu A, do T2 ang mc c lp Read Committed nn s phi xin Shared Lock trn A, m T1 ang gi Exclusive Lock trn A nn T1 khng th xin c Shared Lock cho n khi T1 hon tt vic ghi trn A(Commit) o T2 ch c c A khi T1 Commit => m bo tnh ng n ca d liu T2 c c

b. X l ti Stored Procedure:

T1
create proc sp_SuaVoucher @MaVoucher int, @TenVoucher nvarchar(200), @ThongTinChiTiet nvarchar(200), @NgayBatDau datetime, @NgayKetThuc datetime, @GiaGoc decimal, @GiaKhuyenMai decimal, @SoLuong int,
H Qun Tr C S D Liu

T2

85

@TrangThai int, @UrlHinh nvarchar(100) as begin tran set transaction isolation level read uncommitted update Voucher set TenVoucher = @TenVoucher ,ThongTinChiTiet = @ThongTinChiTiet,NgayBatDau = @NgayBatDau,NgayKetThuc = @NgayKetThuc, GiaGoc = @GiaGoc,GiaKhuyenMai = @GiaKhuyenMai,SoLuong = @SoLuong,TrangThai = @TrangThai,UrlHinh = @UrlHinh where MaVoucher = @MaVoucher waitfor delay '00:00:15' create proc sp_dirty_ThemChiTietDonHang_fix @MaDonHang int, @MaVoucher int, @SoLuong int, @flag int output as begin tran SET TRANSACTION ISOLATION LEVEL READ COMMITTED declare @soluongconlai int select @soluongconlai=SoLuong from Voucher where MaVoucher=@MaVoucher --waitfor delay '00:00:05' if(@SoLuong<=@soluongconlai) begin declare @GiaKhuyenMai decimal set @GiaKhuyenMai = (select GiaKhuyenMai from Voucher where MaVoucher = @MaVoucher) declare @ThanhTien decimal set @ThanhTien = @GiaKhuyenMai * @SoLuong ---cap nhat lai so luong con lai cua voucher update Voucher set SoLuong=@soluongconlai-@SoLuong where MaVoucher=@MaVoucher
H Qun Tr C S D Liu

86

--Them chi tiet don hang insert into ChiTietDonHang(MaDonHang,MaVouch er,SoLuong,ThanhTien) values (@MaDonHang,@MaVoucher,@SoLuon g,@ThanhTien) set @flag = 1 end else--@SoLuong > @soluongconlai begin print N'S lng voucher cn li khng ' set @flag = -1 end if (@GiaKhuyenMai > @GiaGoc) begin raiserror ('Loi',1,0) rollback tran return end if (@@ERROR <> 0) begin print N'Giao tac bi loi' rollback tran return end commit tran go if (@@ERROR <> 0) begin print N'Gia tc b li' rollback tran return end commit tran go

5. Trng hp 5: a. Gii quyt: - S dng mc c lp Repeatable Read v Lock hints (updlock) gii quyt - Gii thch : o C 2 giao tc ban u s c cng 1 n v d liu cng 1 thi im (c trng thi th np trn trn cng 1 m Th np ) = > c 2 giao tc

H Qun Tr C S D Liu

87

cng thao tc trn 1 n v d liu (gi s gi l A) nn T1,T2 cng gi Shared Lock trn A o S dng c lp Repeatable Read cho php T1 v T2 c th ghi trn d liu tha i u kin ang c Shared Lock (trn A) o Sau T1 mun thc hin ghi tr n A cn phi xin Exclusive Lock nhng lc ny T2 ang gi Shared Lock v cng mu n thc hin ghi A nn khng th nh Shared Lock h qun tr cp Exclusive Lock cho T1 c = > 2 giao tc ri vo tnh trng ch i ln nhau ( ch bn kia nh kha) => xy ra deadlock. o S dng c lp Repeatable Read cho php T1 v T2 c th ghi trn d liu tha i u kin ang c Shared Lock (trn A) o S dng Updlock nng cp t Shared Lock ln Exclusive Lock, t i 1 thi im ch c 1 Updlock c pht trn 1 n v d liu nn s m bo c vic giao tc ny c th nng cp Shared Lock ln Exclusive Lock m khng cn phi ch giao tc kia nh kha. => m bo tnh hp l cho trng hp 2 khch hng cng np chung 1 th np ti cng 1 thi im b. X l ti Stored Procedure:

T1
create proc sp_NapThe_fix @MaKH int, @Series varchar(50), @Code varchar (50), @flag int output AS BEGIN tran EXEC sp_KiemTraTheNap @Series,@Code,@flag output---kiem tra the IF(@flag<>0)---neu the hop le begin --tran set transaction isolation level repeatable read --lay trang thai the nap declare @TrangThai int select @TrangThai = TrangThai from TheNap with(updlock) where Series = @Series and Code = @Code
H Qun Tr C S D Liu

T2

88

waitfor delay '00:00:05' create proc sp_NapThe_fix @MaKH int, @Series varchar(50), @Code varchar (50), @flag int output AS BEGIN tran EXEC sp_KiemTraTheNap @Series,@Code,@flag output---kiem tra the IF(@flag<>0)---neu the hop le begin --tran set transaction isolation level repeatable read --lay trang thai the nap declare @TrangThai int select @TrangThai = TrangThai from TheNap with(updlock) where Series = @Series and Code = @Code waitfor delay '00:00:05' if(@TrangThai = 1) begin declare @matk int --lay ra ma tai khoan tu ma khach hang EXEC sp_LayIDTaiKhoanTheNap @MaKH,@matk output ---cap nhat bang the nap ve ngay nap va ma khach hang da nap the , va ngung hoat dong the declare @menhgia decimal(18,0) declare @tilekm int ----Lay ra menh gia va ti le khuyen mai cua the vua nap Select @menhgia=MenhGia,@tilekm=TiLeKhuyen Mai from TheNap where MaTheNap=@flag set @menhgia = @menhgia+(@menhgia * @tilekm)/100 -tinh lai menh gia the nap co khuyen mai ----Thuc hien cong tien cho tai khoan EXEC sp_ThemTientaiKhoanTheNap @MaKH,@menhgia Update TheNap set MaTaiKhoan=@matk,NgayNap=GETDATE (),TrangThai=0 where MaTheNap=@flag end else
H Qun Tr C S D Liu

89

begin set @flag=0 end end

if(@TrangThai = 1) begin declare @matk int --lay ra ma tai khoan tu ma khach hang EXEC sp_LayIDTaiKhoanTheNap @MaKH,@matk output ---cap nhat bang the nap ve ngay nap va ma khach hang da nap the , va ngung hoat dong the declare @menhgia decimal(18,0) declare @tilekm int ----Lay ra menh gia va ti le khuyen mai cua the vua nap Select @menhgia=MenhGia,@tilekm=TiLeKhuyen Mai from TheNap where MaTheNap=@flag set @menhgia = @menhgia+(@menhgia * @tilekm)/100 -tinh lai menh gia the nap co khuyen mai ----Thuc hien cong tien cho tai khoan EXEC sp_ThemTientaiKhoanTheNap @MaKH,@menhgia Update TheNap set MaTaiKhoan=@matk,NgayNap=GETDATE (),TrangThai=0 where MaTheNap=@flag end else begin set @flag=0 end end

if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran go if(@@ERROR <>0)
H Qun Tr C S D Liu

90

begin print N'Giao tc b li' rollback tran return end commit tran go

6. Trng hp 6: a. Gii quyt: - S dng mc c lp Serializable cho giao tc T1 gii quyt - Gii thch : o Ban u T1 thc hin m s lng Voucher c gi t MucGia1 n MucGia2 (gi s gi l n v d liu A) => T1 gi Shared Lock trn A o T1 ang mc c lp Serializable th s gi Shared Lock cho n ht giao tc v s ngn cn vic insert d liu tha iu ki n thit lp Shared Lock (ngn c n vic insert Voucher c gi t MucGia1 n MucGia2 v T1 ang gi Shared Lock trn A). Do vy, T2 khng th thc hin vi c insert Voucher c gi t MucGia1 n MucGia2 cho n khi T1 kt thc (Commit) =>m bo tnh ng nht d liu b. X l ti Stored Procedure:

T1 Tm kim
create proc sp_TimKiemTheoGia_fix @MucGia1 decimal, @MucGia2 decimal, @soluong int output as begin begin tran set transaction isolation level serializable set @soluong = (select COUNT(*) from Voucher where GiaKhuyenMai between @MucGia1 and @MucGia2 and TrangThai = 1) waitfor delay '00:00:10'

T2 Thm Voucher

H Qun Tr C S D Liu

91

create proc sp_ThemVoucher @TenVoucher nvarchar(200), @ThongTinChiTiet nvarchar(200), @NgayBatDau datetime, @NgayKetThuc datetime, @GiaGoc decimal, @GiaKhuyenMai decimal, @SoLuong int, @MaLoaiHinhDV int, @MaDoanhNghiep int, @UrlHinh nvarchar(500) as begin begin tran insert into Voucher(TenVoucher,ThongTinChiTiet, NgayBatDau,NgayKetThuc,GiaGoc,Gia KhuyenMai,SoLuong,TrangThai,MaLoai HinhDV,MaDoanhNghiep,UrlHinh) values(@TenVoucher,@ThongTinChiTi et,@NgayBatDau,@NgayKetThuc,@Gia Goc,@GiaKhuyenMai,@SoLuong,1,@M aLoaiHinhDV,@MaDoanhNghiep,@Url Hinh) select * from Voucher where GiaKhuyenMai between @MucGia1 and @MucGia2 and TrangThai = 1 if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran end go if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran end go

H Qun Tr C S D Liu

92

7. Trng hp 7: a. Gii quyt: - S dng mc c lpSerializable cho giao tc T1 gii quyt - Gii thch : o Gi s T1 tm kim Voucher vi tn c t kha l abc o Ban u T1 thc hin m s lng Voucher vi tn c t kha l abc (gi s gi l n v d liu A) => T1 gi Shared Lock trn A o T1 ang mc c lp Serializable th s gi Shared Lock cho n ht giao tc v ngn cn vic insert d liu tha iu ki n thit lp Shared Lock (ngn c n vic insert Voucher vi tn c t kha l abc v T1 ang gi Shared Lock trn A). Do vy, T2 khng th thc hin vic insert Voucher vi tn c t kha l abccho n khi T1 kt thc (Commit) =>m bo tnh ng nht d liu b. X l ti Stored Procedure:

T1 Tm kim
create proc sp_TimKiemTheoTen_fix @Ten nvarchar(200), @soluong int output as begin begin tran set transaction isolation level serializable set @soluong = (select COUNT(*) from Voucher where TenVoucher like N'%'+@Ten+'%' and TrangThai = 1) waitfor delay '00:00:10'

T2 Thm Voucher

create proc sp_ThemVoucher @TenVoucher nvarchar(200), @ThongTinChiTiet nvarchar(200), @NgayBatDau datetime, @NgayKetThuc datetime, @GiaGoc decimal, @GiaKhuyenMai decimal, @SoLuong int, @MaLoaiHinhDV int, @MaDoanhNghiep int,
H Qun Tr C S D Liu

93

@UrlHinh nvarchar(500) as begin begin tran insert into Voucher(TenVoucher,ThongTinChiTiet,N gayBatDau,NgayKetThuc,GiaGoc,GiaKh uyenMai,SoLuong,TrangThai,MaLoaiHin hDV,MaDoanhNghiep,UrlHinh) values(@TenVoucher,@ThongTinChiTiet ,@NgayBatDau,@NgayKetThuc,@GiaGo c,@GiaKhuyenMai,@SoLuong,1,@MaLo aiHinhDV,@MaDoanhNghiep,@UrlHinh ) select * from Voucher where TenVoucher like N'%'+@Ten+'%' and TrangThai = 1 if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran end go if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran end go

8. Trng hp 8: a. Gii quyt: - S dng mc c lpSerializable cho giao tc T1 gii quyt - Gii thch : o Ban u T1 thc hin m s lng hp ng cn thi hn (TrangThai=1), (gi s gi l n v d liu A) => T1 gi Shared Lock trn A
H Qun Tr C S D Liu

94

o T1 ang mc c lp Serializable th s gi Shared Lock cho n ht giao tc v ngn cn vic insert d liu tha iu ki n thit lp Shared Lock (ngn c n vic insert thm hp ng c TrangThai=1 v T1 ang gi Shared Lock trn A). Do v y, T2 khng th thc hin vic insert thm hp ng c TrangThai=1 cho n khi T1 kt thc (Commit) =>m bo tnh ng nht d liu b. X l ti Stored Procedure:

T1 Ly danh sch hp ng cn thi hn


create proc sp_XemDanhSachHopDongConThoiHan _fix @maDN int, @soluong int output as begin begin tran set transaction isolation level serializable set @soluong = (select COUNT(*) from HopDong where TrangThai = 1 and MaDoanhNghiep = @maDN) waitfor delay '00:00:15'

T2 Thm hp ng

create proc sp_ThemHopDong @NgayKy datetime, @ThoiHan datetime, @MoTa ntext, @MaDoanhNghiep int as begin begin tran insert into HopDong(NgayKy,ThoiHan,MoTa,TrangT hai,MaDoanhNghiep) values(@NgayKy,@ThoiHan,@MoTa,1,@ MaDoanhNghiep) select * from HopDong where TrangThai = 1 and MaDoanhNghiep = @maDN if(@@ERROR <>0 ) begin
H Qun Tr C S D Liu

95

print N'Giao tc b li' rollback tran return end commit tran end go if(@@ERROR <>0 ) begin print N'Giao tc b li' rollback tran return end commit tran end go

9. Trng hp 9: a. Gii quyt: - S dng mc c lpSerializable cho giao tc T1 gii quyt - Gii thch : o Ban u T1 thc hin m s lng hp ng ht thi hn (TrangThai=0), (gi s gi l n v d liu A) => T1 gi Shared Lock trn A o T1 ang mc c lp Serializable th s gi Shared Lock cho n ht giao tc v ngn cn vic insert d liu tha iu ki n thit lp Shared Lock (ngn c n vic insert thm hoc update hp ng c TrangThai=0 v T1 ang gi Shared Lock trn A). Do vy, T2 khng th thc hin vic insert thm hoc update hp ng c TrangThai=0 cho n khi T1 kt thc (Commit) =>m bo tnh ng nht d liu

H Qun Tr C S D Liu

96

b. X l ti Stored Procedure:

T1 Ly danh sch hp ng ht thi hn


create proc sp_XemDanhSachHopDongHetThoiHan_fix @maDN int, @soluong int output as begin begin tran set transaction isolation level serializable set @soluong = (select COUNT(*) from HopDong where TrangThai = 0 and MaDoanhNghiep = @maDN) waitfor delay '00:00:05'

T2 Cp nht li trng thi hp ng (ht hn)

create proc sp_CapNhatHopDong @MaHopDong int as begin tran Declare @TrangThaiCu int select @TrangThaiCu= TrangThai from HopDong where MaHopDong = @MaHopDong declare @TrangThaiMoi int if(@TrangThaiCu = 0) set @TrangThaiMoi = 1 else set @TrangThaiMoi = 0 update HopDong set TrangThai = @TrangThaiMoi where MaHopDong = @MaHopDong select * from HopDong where TrangThai = 0 and MaDoanhNghiep = @maDN if(@@ERROR <>0 ) begin print N'Giao tc b li' rollback tran return end commit tran end go if(@@ERROR <>0 )
H Qun Tr C S D Liu

97

begin print N'Giao tc b li' rollback tran return end commit tran go

10. Trng hp 10: a. Gii quyt: - S dng mc c lp Repeatable Read cho giao tc T1 gi i quyt - Gii thch : o Ban u T1 thc hin m s lng Voucher c gi t MucGia1 n MucGia2 (gi s gi l n v d liu A) => T1 gi Shared Lock trn A o T1 ang mc c lp Repeatable Readth s gi Shared Lock cho n ht giao tc o Do vy, T2 mu n cp nht li thng tin Voucher trn n v d liu A th phi xin cp Exclusive Lock trn A, nhng lc ny T1 ang gi Shared Lock nn T2 khng th xin c Exclusive Lock cho n khi T1 hon tt (Commit) =>m bo tnh ng nht d liu. b. X l ti Stored Procedure:

T1 Tm kim
create proc sp_TimKiemTheoGia_unrepeatable_fix @MucGia1 decimal, @MucGia2 decimal, @soluong int output as begin begin tran set transaction isolation level repeatable read set @soluong = (select COUNT(*) from Voucher where GiaKhuyenMai between @MucGia1 and @MucGia2 and TrangThai = 0) waitfor delay '00:00:05'

T2 Cp nht Voucher

create proc sp_SuaVoucher


H Qun Tr C S D Liu

98

@MaVoucher int, @TenVoucher nvarchar(200), @ThongTinChiTiet nvarchar(200), @NgayBatDau datetime, @NgayKetThuc datetime, @GiaGoc decimal, @GiaKhuyenMai decimal, @SoLuong int, @TrangThai int, @UrlHinh nvarchar(100) as begin tran update Voucher set TenVoucher = @TenVoucher ,ThongTinChiTiet = @ThongTinChiTiet,NgayBatDau = @NgayBatDau,NgayKetThuc = @NgayKetThuc, GiaGoc = @GiaGoc,GiaKhuyenMai = @GiaKhuyenMai,SoLuong = @SoLuong,TrangThai = @TrangThai,UrlHinh = @UrlHinh where MaVoucher = @MaVoucher waitfor delay '00:00:15' if (@GiaKhuyenMai > @GiaGoc) begin raiserror ('Loi',1,0) rollback tran return end select * from Voucher where GiaKhuyenMai between @MucGia1 and @MucGia2 and TrangThai = 0 if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran end go if (@@ERROR <> 0) begin print N'Giao tac bi loi' rollback tran return end commit tran go
H Qun Tr C S D Liu

99

11. Trng hp 11: c. Gii quyt: - S dng mc c lp Repeatable Read v Lock hints (updlock) gii quyt - Gii thch : o C 2 giao tc ban u s c cng 1 n v d liu cng 1 thi im (c trng thi th np trn trn cng 1 m Th np ) = > c 2 giao tc cng thc hin trn 1 n v d liu (gi s gi l A) nn T1,T2 cng gi Shared Lock trn A o S dng c lp Repeatable Read cho php T1 v T2 c th ghi trn d liu tha i u kin ang c Shared Lock (trn A) o Sau T1 mun thc hin ghi trn A cn phi xin Exclusive Lock nhng lc ny T2 ang gi Shared Lock v cng mu n thc hin ghi A nn khng th nh Shared Lock h qun tr cp Exclusive Lock cho T1 c = > 2 giao tc ri vo tnh trng ch i ln nhau ( ch bn kia nh kha) => xy ra deadlock. o S dng Updlock nng cp t Shared Lock ln Exclusive Lock, t i 1 thi im ch c 1 Updlock c pht trn 1 n v d liu nn s m bo c vic giao tc ny c th nng cp Shared Lock ln Exclusive Lock m khng cn phi ch giao tc k ia nh kha. => m bo tnh hp l cho trng hp 2 khch hng cng np chung 1 th np ti cng 1 thi im d. X l ti Stored Procedure:

T1
create proc sp_NapThe_fix @MaKH int, @Series varchar(50), @Code varchar (50), @flag int output AS BEGIN EXEC sp_KiemTraTheNap @Series,@Code,@flag output---kiem tra the IF(@flag<>0)---neu the hop le Begin
H Qun Tr C S D Liu

T2

100

begin tran set transaction isolation level repeatable read --lay trang thai the nap declare @TrangThai int select @TrangThai = TrangThai from TheNap with (updlock) where Series = @Series and Code = @Code waitfor delay '00:00:05' create proc sp_NapThe_fix @MaKH int, @Series varchar(50), @Code varchar (50), @flag int output AS BEGIN EXEC sp_KiemTraTheNap @Series,@Code,@flag output---kiem tra the IF(@flag<>0)---neu the hop le Begin begin tran set transaction isolation level repeatable read --lay trang thai the nap declare @TrangThai int select @TrangThai = TrangThai from TheNap with (updlock) where Series = @Series and Code = @Code waitfor delay '00:00:05' if(@TrangThai = 1) begin declare @matk int ---lay ra ma tai khoan tu ma khach hang EXEC sp_LayIDTaiKhoanTheNap @MaKH,@matk output ---cap nhat bang the nap ve ngay nap va ma khach hang da nap the , va ngung hoat dong the declare @menhgia decimal(18,0) declare @tilekm int ----Lay ra menh gia va ti le khuyen mai cua the vua nap Select @menhgia=MenhGia,@tilekm=TiLeKhuyen Mai from TheNap where MaTheNap=@flag
H Qun Tr C S D Liu

101

set @menhgia = @menhgia+(@menhgia * @tilekm)/100 -tinh lai menh gia the nap co khuyen mai ----Thuc hien cong tien cho tai khoan EXEC sp_ThemTientaiKhoanTheNap @MaKH,@menhgia Update TheNap set MaTaiKhoan=@matk,NgayNap=GETDATE( ), TrangThai=0 where MaTheNap=@flag end

if(@TrangThai = 1) begin declare @matk int ---lay ra ma tai khoan tu ma khach hang EXEC sp_LayIDTaiKhoanTheNap @MaKH,@matk output ---cap nhat bang the nap ve ngay nap va ma khach hang da nap the , va ngung hoat dong the declare @menhgia decimal(18,0) declare @tilekm int ----Lay ra menh gia va ti le khuyen mai cua the vua nap Select @menhgia=MenhGia,@tilekm=TiLeKhuye nMai from TheNap where MaTheNap=@flag set @menhgia = @menhgia+(@menhgia * @tilekm)/100 -tinh lai menh gia the nap co khuyen mai ----Thuc hien cong tien cho tai khoan EXEC sp_ThemTientaiKhoanTheNap @MaKH,@menhgia Update TheNap set MaTaiKhoan=@matk,NgayNap=GETDAT E(), TrangThai=0 where MaTheNap=@flag end

H Qun Tr C S D Liu

102

if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran END END if(@@ERROR <>0) begin print N'Giao tc b li' rollback tran return end commit tran END END

5 NG DNG DEMO
5.1 M t cu trc ng dng
[M t sitemap ca website] a. Khch Hng

Trang Ch

DS Deal
Theo loi

Chi tit voucher Mua voucher

Gi hng
Thanh ton

Tm kim

Lin H

ng nhp

ng k

MuaVoucher

Thng tin c nhn


i MK Np th

ng k thnh cng

Theo Doanh Nghip


Hm nay

Thanh ton thnh cng

Logout

Xem TT np th

Xem LS mua hng

Gn y
H Qun Tr C S D Liu

Chi tit LS mua hng


103

b. Admin Admin QL n Hng QL Doanh Nghip

QL Voucher

QL Th Np

Ci t

Logout

Xem VC ang H
Xem VC Ngng H

Xem th cha dng


Xem th dng ri Thm th mi Cp nht t l KM

thanh ton

Cha thanh ton


Thanh ton H tr sau

QL hp ng

Thay i mt khu

Gim gi KM
Xa/Sa Voucher

c. Doanh Nghi p Doanh Nghip i Mt Khu Qun L Voucher DS Voucher ang H Xem Thng Tin Hp ng

DS Voucher ngng H
DS Voucher _All

Thm Voucher
Cp nht gi KM

[Thng tin ca link download project, phim]


Project : http://www.mediafire.com/download/rc51otc7j9ob7dm/15_PROJECTDEMO.rar Video demo : http://www.mediafire.com/download/l40djs5504nv0p2/15_VIDEODEMO.rar

H Qun Tr C S D Liu

104

5.2 Tnh hung tranh chp ng thi [Vi mi tnh hung tranh chp chp hnh giao din ca cc chc nng gy tranh chp (c d liu test)] a. Tnh hung gy li 1: Giao tc 1:Admin(admin-admin1702)

Giao tc 2:Doanh nghip (tokyodeli-tokyodeli123)

H Qun Tr C S D Liu

105

b. Tnh hung gy li 2: Giao tc 1:Khch hng 1 (huynhtuytram huynhtuytram760) Bc 1: t hng

Bc 2: Thanh ton

H Qun Tr C S D Liu

106

Giao tc 2:Khch hng 2 (khuctuandinh -khuctuandinh500) Bc 1: t hng

Bc 2: Thanh ton

H Qun Tr C S D Liu

107

c. Tnh hung gy li 3: Giao tc 1:Khch hng 1 (huynhtuytram huynhtuytram760)

Giao tc 2:Admin(admin-admin1702)

H Qun Tr C S D Liu

108

d. Tnh hung gy li 4: Giao tc 1:Khch hng 1 (huynhtuytram huynhtuytram760). Bc 1: t hng

Bc 2: Thanh ton

H Qun Tr C S D Liu

109

Giao tc 2:Admin(admin-admin1702) Bc 1 : Qun l voucher

Bc 2: Sa voucher

H Qun Tr C S D Liu

110

e. Tnh hung gy li 5: Giao tc 1:Khch hng 1 (huynhtuytram huynhtuytram760).

Giao tc 2:Khch hng 2 (khuctuandinh -khuctuandinh500)

H Qun Tr C S D Liu

111

f. Tnh hung gy li 6: Giao tc 1:Khch hng (vng lai )

Giao tc 2:Doanh nghip (tokyodeli-tokyodeli123)

H Qun Tr C S D Liu

112

g. Tnh hung gy li 7: Giao tc 1:Khch hng (vng lai )

Giao tc 2:Doanh nghip (tokyodeli-tokyodeli123)

H Qun Tr C S D Liu

113

h. Tnh hung gy li 8:

Giao tc 1:Doanh nghip (tokyodeli-tokyodeli123)

Giao tc 2:Admin(admin-admin1702)

H Qun Tr C S D Liu

114

i. Tnh hung gy li 9:

Giao tc 1:Doanh nghip (tokyodeli-tokyodeli123)

Giao tc 2:Admin(admin-admin1702) (Doanh nghip >>Qun l hp ng )

H Qun Tr C S D Liu

115

j. Tnh hung gy li 10: Giao tc 1:Khch hng (vng lai )

Giao tc 2:Admin(admin-admin1702) (Voucher ang hotng >> Sa voucher )

H Qun Tr C S D Liu

116

k. Tnh hung gy li 11: Giao tc 1:Khch hng 1 (huynhtuytram huynhtuytram760)

Giao tc 2:Khch hng 2 (khuctuandinh -khuctuandinh500)

H Qun Tr C S D Liu

117

5.3 B d liu test cc tnh hung [M t b d liu test tnh hung tranh chp trn ng dng] 1. Trng hp 1: a. B d liu test: - Ti khon: admin v tokyodeli - M sn phm cp nht : 18 - Gi khuyn mi cp nht: admin: +10K tokyodeli: -20K b. Tnh hung gy li: - Chc nng: Admin v doanh nghip cng cp nht li gi khuyn mi ca Voucher c MaVoucher = 18 ti 1 thi im. - D liu: Admin: ng nhp vo ti khon admin vo qun l Voucher -> Sa gi khuyn mi. Tm Voucher c MaVoucher = 18 vi Gi khuyn mi = 460000. Chn mc cp nht: +10K. Doanh nghip: ng nhp bng ti khon tokyodeli vo Qun l Voucher -> Cp nht gi khuyn mi Voucher. Tm Voucher c MaVoucher = 18 vi Gi khuyn mi = 460000. Chn mc cp nht: -20K. - Kt qu: Sau khi admin v doanh nghip cng cp nht gi trn MaVoucher = 18 th Gi khuyn mi hin ti ca admin v tokyodeli l 470000 (nhng Gi khuyn mi ng n sau khi cp nht phi l 450000). 2. Trng hp 2: a. B d liu test: - Ti khon: huynhtuytram v khuctuandinh - Tn Voucher: Buffet tra ti Nh hng BBQ House - S lng a ch giao hng hnh thc thanh ton:

H Qun Tr C S D Liu

118

huynhtuytram: 10 -16 Tn Tht Tng Qun 1 Thanh ton sau khi nhn hng khuctuandinh: 5 16 Tn n Qun 4 Thanh ton sau khi nhn hng b. Tnh hung gy li: - Chc nng: 2 khch hng huytuytram v khuctuandinh thanh ton Voucher c tn Buffet tra ti Nh hng BBQ House vi s lng chn v cp nht li s lng sn phm cn li ca Voucher ti cng mt thi im. - D liu: Khch hng 1: ti khon huynhtuytram mua Voucher tn Buffet tra ti Nh hng BBQ House vi s lng l 10 v thanh ton sau khi nhn hng Khch hng 2: ti khon khuctuandinh mua Voucher tn Buffet tra ti Nh hng BBQ House vi s lng l 5 v thanh ton sau khi nhn hng - Kt qu: S lng cn li ca Voucher (Buffet tra ti Nh hng BBQ House) trc khi 2 khch hng mua l 90. Sau khi huynhtuytram v khuctuandinh thanh ton th s lng cn li ca Voucher l 85 (nhng s lng cn li ng n phi l 75). 3. Trng hp 3: a. B d liu test: - Ti khon: admin, huytuytram - Th np: Series: VC00001 Code: 201330030 - Cp nht t l khuyn mi: T l: 500% - Mnh gi: 10000 b. Tnh hung gy li:

H Qun Tr C S D Liu

119

- Chc nng: admin cp nht t l khuyn mi khng hp l v b hy giao tc trong khi khch hng (huynhtuytram) np th c mnh gi trng vi mnh gi admin ang cp nht. - D liu: Admin: ng nhp bng ti khon admin vo qun l Th Np -> Cp nht t l khuyn mi. Chn mnh gi cp nht l 10000 vi t l khuyn mi 500%. Khch hng: ng nhp bng ti khon huynhtuytram xem thng yin c nhn v chn chc nng np th vi s Series: VC00001 v Code: 201330030. Mnh gi th np m huynhtuytram np l 10000 trng vi mnh gi m admin ang cp nht li t l khuyn mi - Kt qu: V t l khuyn mi > 100 so vi quynh nh nn tt c th np c mnh gi 10000 khi admin cp nht c t l khuyn mi l 0 S d ti khon ca huynhtuytram sau khi n p th l 60000 (gi tr ng n ca s d ti khon ca huynhtuytram phi l 10000). 4. Trng hp 4: a. B test d liu: - Ti khon: admin huynhtuytram - Voucher tng tc: M: 18 Tn: Set n b thui(2-3 ngi) Qun b thui Bn Ma - S lng mua: 1 - Thng tin Voucher: Gia nguyn ch thay i gi KM t 470000 => 800000 (cao hn gi gc) b. Tnh hung gy li: - Chc nng: admin thc hin cp nht li gi khuyn mi ca mt Voucher nhng khng hp l v b hy giao tc khch hng mua Vouhcer thanh ton v c d liu rc do admin cp nht v lu vo n hng.
H Qun Tr C S D Liu

120

- D liu: Admin: ng nhp vo ti khon admin vo qun l Voucher -> Voucher ang hot ng chn doanh nghip tokyodeli, chn chc nng sa ca Voucher tn Set n b thui (2-3 ngi) Qun b thui Bn Ma. Gi nguyn cc gi tr ch thay i gi khuyn mi t 470000 => 800000. Khch hng: ng nhp bng ti khon huynhtuytram v tm mua Voucher Set n b thui (2 -3 ngi) Qun b thui Bn Ma vi s lng l 1. - Kt qu: V t l KM khi cp nht ln hn gi gc (600000) ca Voucher nn sau khi cp nht gi KM vn l 470000. Trong khi , khch hng huynhtuytram sau khi thanh ton vo xem lch s mua hng ca Voucher Set n b thui (2 -3 ngi) Qun b thui Bn Ma c gi khuyn mi l 800000. ( Gi khuyn mi ng n phi l 470000). 5. Trng hp 5: a. B d liu test: - Ti khon: kieutrieukien khuctuandinh - Th np: Series: VC00002 Code: 201330031 b. Tnh hung gy li: - Chc nng: 2 khch hng cng np 1 th ti 1 thi im - D liu: Khch hng 1: ng nhp bng ti khon khuctuandinh vo trang thng tin c nhn chn chc nng Np th vi Series: VC00002 Code: 201330031. Khch hng 2: ng nhp bng ti khon kieutrieukien vo trang thng tin c nhn chn chc nng Np th vi Series: VC00002 Code: 201330031.

H Qun Tr C S D Liu

121

- Kt qu: c 2 khch hng u np th c vi s d ti khon l 20000 nhng thng tin lch s np th khch hng u khuctuandinh b mt (kt qu ng n ch c 1 khch hng np th thnh cng, khch hng c giao tc thc hin trc). 6. Trng hp 6: a. B d liu test: - Ti khon: tokyodeli khch vng lai - Tm kim: mc gi < 100K - Thm sn phm: Tn: Bch tuc nng M t: Yummy Ngy bt u: 15/05/2013 Ngy kt thc: 30/06/2013 Gi gc: 70000 Gi KM: 40000 S lng: 70 Loi hnh: Nh hng qun n Url hnh: (ty chn). b. Tnh hung gy li: - Chc nng: khch hng tm kim cc sn phm c mc gi nm trong khong gi bt k m khch hng chn, cng lc doanh nghip thm 1 Voucher c mc gi nm trong khong gi m khch hng tm kim. - D liu: Khch hng: c ti khon hoc cha c ti khon chn chc nng tm kim vi mc gi tm kim < 100K Doanh nghip: ng nhp bng ti khon tokyodeli vo Qun l Voucher -> Thm Voucher vi cc thng tin: Tn: Bch tuc nng M t: Yummy Ngy bt u: 15/05/2013 Ngy kt thc: 30/06/2013 Gi gc: 70000 Gi KM: 40000 S lng: 70 Loi hnh: Nh hng qun n Url hnh: (ty chn). - Kt qu: khch hng sau khi tm kim mc gi Voucher < 100K kt qu tm c c s lng: 12 Voucher nhng danh mc cc Voucher c show ra li c n 13 Voucher (kt qu tm kim ng n phi l s lng voucher tm kim l 12 v danh mc voucher l 12). 7. Trng hp 7: a. B d liu test: - Ti khon: tokyodeli khch vng lai
H Qun Tr C S D Liu

122

- Tm kim: spa - Thm sn phm: Tn: Hoa Vin Spa M t: beauty Ngy bt u: 15/05/2013 Ngy kt thc: 30/06/2013 Gi gc: 70000 Gi KM: 30000 S lng: 70 Loi hnh: Spa-Lm p Url hnh: (ty chn) b. Tnh hung gy li: - Chc nng: khch hng tm kim cc voucher theo tn, cng lc doanh nghip thm 1 Voucher c tn cha chui tm kim ca khch hng. - D liu: Khch hng: c ti khon hoc cha c ti khon chn chc nng tm kim vi tn tm kim spa Doanh nghip: ng nhp bng ti khon tokyodeli vo Qun l Voucher -> Thm Voucher vi cc thng tin: Tn: Hoa Vin Spa M t: beauty Ngy bt u: 15/05/2013 Ngy kt thc: 30/06/2013 Gi gc: 70000 Gi KM: 30000 S lng: 70 Loi hnh: Spa-Lm p Url hnh: (ty chn). - Kt qu: khch hng sau khi tm kim cc voucher c tn spa kt qu tm c c s lng: 6 voucher nhng danh mc cc Voucher c show ra li c n 7 voucher (kt qu tm kim ng n phi l s lng voucher tm kim l 6 v danh mc voucher l 6). 8. Trng hp 8: a. B d liu test: - Ti khon: tokyodeli admin - Thm hp ng: Doanh nghip: Tokyodeli Ngy k: 17/05/2013 Ngy ht hn: 30/06/2013 M t: Phi tun theo mi quy nh ca MuaVoucher. b. Tnh hung gy li: - Chc nng: doanh nghip xem danh sch cc hp ng cn hn k kt vi MuaVoucher , cng lc admin thm mi 1 hp ng k kt vi doanh nghip trn. - D liu:

H Qun Tr C S D Liu

123

Doanh nghip: ng nhp bng ti khon tolyodeli vo qun l Hp ng -> Xem thng tin hp ng chn xem Hp ng cn hn. Admin: ng nhp bng ti khon admin vo qun l Doanh nghip -> Thm hp ng vi cc thng tin: Tn doanh nghip: Tokyodeli Ngy k: 17/05/2013 Ngy ht hn: 30/06/2013 M t: Phi tun theo mi quy nh ca MuaVoucher. - Kt qu: s lng hp ng cn hn ca doanh nghip tokyodeli l 2 nhng danh sch hp ng show ra c 3 hp ng (kt qu tr v ng n phi l 2 hp ng cn hn v danh sch hp ng l 2). 9. Trng hp 9: a. B d liu test: - Ti khon: tokyodeli - admin - H y hp ng: Doanh nghip: Tokyo Deli - M hp ng: 46 b. Tnh hung gy li: - Chc nng: doanh nghip xem danh sch cc hp ng ht hn k kt vi MuaVoucher, cng lc admin thm mi 1 hp ng k kt vi doanh nghip trn. - D liu: Doanh nghip: ng nhp bng ti khon tolyodeli vo qun l Hp ng -> Xem thng tin hp ng chn xem Hp ng ht hn. Admin: ng nhp bng ti khon admin vo qun l Doanh nghip -> Qun l hp ng tm hp ng c m hp ng l 46 ca doanh nghip tokyodeli chn chc nng kch hot hp ng t ht thi hn chuyn sang cn thi hn - Kt qu: s lng hp ng ht hn ca doanh nghip tokyodeli l 1 nhng danh sch khi show ra li khng c hp ng no (kt qu tr v ng n phi l 1 hp ng ht hn v danh sch hp ng l 1). 10. Trng hp 10: a. B d liu test: - Ti khon: Khch vng lai - Admin

H Qun Tr C S D Liu

124

- Tm kim: mc gi < 100k - Sa Voucher: Tn: Bch tuc nng - M t: Yummy - Ngy bt u: 15/05/2013 - Ngy kt thc: 30/06/2013 - Gi gc: 700000 - Gi KM: 400000 - S lng: 70 - Url hnh:(ty chn) b. Tnh hung gy li: - Chc nng: khch hng tm kim cc sn phm c mc gi nm trong khong gi bt k m khch hng chn, cng lc doanh nghip chnh sa gi ca 1 Voucher c mc gi nm trong khong gi m khch hng tm kim. - D liu: Khch hng: c ti khon hoc cha c ti khon chn chc nng tm kim vi mc gi tm kim < 100K Doanh nghip: ng nhp bng ti khon tokyodeli vo Qun l Voucher -> Voucher ang hot ng chn doanh nghip tokypdeli v Sa thng tin Voucher: Tn: Bch tuc nng M t: Yummy Ngy bt u: 15/05/2013 Ngy kt thc: 30/06/2013 Gi gc: 700000 Gi KM: 400000 S lng: 70 Url hnh: (ty chn). - Kt qu: khch hng sau khi tm kim mc gi Voucher < 100K kt qu tm c c s lng: 14 voucher nhng danh mc cc voucher c show ra ch 13 Voucher (kt qu tr v ng n c s lng 14 voucher v danh sch voucher l 14). 11. Trng hp 11: a. B d liu test: - Ti khon: kieutrieukien - khuctuandinh - Th np: Series: VC00004 - Code: 201330033 b. Tnh hung gy li: - Chc nng: 2 khch hng cng np 1 th ti 1 thi im - D liu:

H Qun Tr C S D Liu

125

Khch hng 1: ng nhp bng ti khon kieutrieukien vo trang thng tin c nhn chn chc nng Np th vi Series: VC00004 Code: 201330033. Khch hng 2: ng nhp bng ti khon khuctuandinh vo trang thng tin c nhn chn chc nng Np th vi Series: VC00004 Code: 201330033. - Kt qu: c 2 khch hng u np th thnh cng nhng ch c khch hng kieutrieukien c cng tin vo s d ti khon cn khch hng khuctuandinh th khng (kt qu ng n ch 1 trong hai khch hng np thnh cng, khch hng c giao tc chy trc).

TNG KT

Kt qu t c: - Hon thnh cc yu cu ca n - Hiu r hn cc trng hp gy li khi truy xut ng thi - Thc hin fix li thnh cng trn giao din - Giao din ngi dng p, d s dng

H Qun Tr C S D Liu

126

You might also like