Мазмунга өтүү

Жыйынтыктоочу долбоор: онлайн дүкөндүн маалымат базасы

Сабактын башталышы

Жыйынтыктоочу долбоор: онлайн дүкөндүн маалымат базасы

Долбоорлоо, куруу, коргоо жана отчёт алуу — башынан аягына чейин

Негизги идея: тиркеменин чыныгы маалымат базасы бир куу суроо эмес, система. Бул долбоордо сиз кичине онлайн дүкөндү төрт байланышкан таблица катары моделдейсиз, аны чектөөлөр менен корголгон нормалдаштырылган схема менен куруп, керектүү суроолор үчүн индекстерди кошуп, буйрутмаларды транзакциянын ичинде коопсуз тариздеп, CTE жана CASE менен бизнес-суроолорго жооп бересиз. 1-13-темалардагы бардык көндүмдөр ушул жерде чогулат.
Аягында сиз төмөнкүлөрдү жасай аласыз:
  • дүкөндүн талаптарын маңыздарга жана байланыштарга айландырып, 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 киргизебиз, ал «буйрутмадагы товар» ар бир жубу үчүн бир сап, ошондой эле ошол жупка тиешелүү кошумча фактыларды (саны, баасы) сактайт.

customers PK customer_id email (UNIQUE) full_name created_at orders PK order_id FK customer_id order_date status order_items PK order_item_id FK order_id FK product_id quantity, unit_price products PK product_id name price stock 1 кардар -> N буйрутма 1 буйрутма -> N сап 1 товар -> N сап
Эки бирден-көпкө байланыш (customers-orders, products-order_items) көптүн-көпкө байланышын order_items көпүрөсү аркылуу чечет.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө