Жыйынтыктоочу долбоор: онлайн дүкөндүн маалымат базасы
Долбоорлоо, куруу, коргоо жана отчёт алуу — башынан аягына чейин
- дүкөндүн талаптарын маңыздарга жана байланыштарга айландырып, ER-диаграмманы окуй аласыз,
- нормалдаштырылган (3НФ) схема жазасыз, анын
CREATE TABLEоператорлору ачкычтар,NOT NULL,UNIQUEжанаCHECKаркылуу бүтүндүктү камсыздайт, - дүкөндүн чыныгы сурооолоруна дал келген индекстерди тандай аласыз,
- калдыктар менен буйрутмалар эч качан айырмаланбашы үчүн буйрутманы атомардуу тариздей аласыз,
WITHжанаCASEменен отчёттордү (мыкты кардарлар, товар боюнча киреше, ай боюнча сатуулар) курасыз.
1. Тема чөйрөсү: маңыздар жана байланыштар
Бизнестин тилинен башта. Дүкөндө кардарлар (customers) бар, алар буйрутмаларды (orders) тариздешет; ар бир буйрутмада бир же бир нече товар (products) болот, ал эми буйрутмадагы ар бир товар үчүн канча алынганын жана ошол учурдагы баасын жазабыз. Бул зат атоочтор таблицаларга айланат:
| Маңыз | Мааниси | Негизги байланыш |
|---|---|---|
| customers | сатып ала турган адамдар | бир кардар -> көп буйрутма |
| orders | бир сатып алуу окуясы | бир буйрутма -> көп order_items |
| products | сатыктагы товарлар | бир товар -> көп order_items |
| order_items | бир буйрутманын бир товар сабы | буйрутма менен товарды байланыштырат |
Бир буйрутмада көп товар болушу мүмкүн, ал эми бир товар көп буйрутмада кездешет — бул көптүн-көпкө байланышы. Мындай байланыш аркылуу эки таблицаны түз кошпойбуз; анын ордуна байланыштыруучу (көпүрө) таблица order_items киргизебиз, ал «буйрутмадагы товар» ар бир жубу үчүн бир сап, ошондой эле ошол жупка тиешелүү кошумча фактыларды (саны, баасы) сактайт.
order_items көпүрөсү аркылуу чечет.