terminal
Merosxo'r baza kapstoni: dedup, FK, arxiv va audit
Easybolt+20 XPflagRequired
Bazani yoqish: baza-start (har lab boshida server o'chiq bo'ladi). psql'ga kirish: hn (bu psql -h /tmp -U postgres -d hn uchun qisqartma; fayl bajarish: hn -f fayl.sql, bitta so'rov: hn -c "..."). Sizga "merosxo'r" baza qoldi: xatda duplikat emaillar, buyurtmada yetim mijoz idlar, hodisa 1000 qatorga shishgan (400 tasi eski), audit yo'q. Oldingi darslar bilimi birga ishlaydi. Vazifa (hammasi hnda) Dedup + unique : darsdagi row number() naqshi bilan xatdagi takror emaillardan faqat ENG KICHIK idni qoldirib o'chiring, so'ng create unique index idx xat email on xat(email); FK ikki bosqichda : avval yetim buyurtma qatorlarini o'chiring, so'ng alter table buyurtma add constraint fk mijoz foreign key (mijoz id) references mijoz(id) not valid; va alter table buyurtma validate constraint fk mijoz; (validate'ni unutish — darsdagi klassik xato!). Atomar arxiv : BITTA buyruqda hodisadan vaqt < '2026-02-01' yozuvlarni hodisa arxivga ko'chiring: with kochirilgan as (delete ... returning ) insert ... Xavfsiz ustun : alter table hodisa add column holat text not null default 'yangi'; (PG'da bu "fast default" — jadval qayta yozilmaydi). Audit trigger : mijozdagi har updateni audit jadvaliga yozadigan funksiya+trigger (TG OP, to jsonb(OLD), to jsonb(NEW)). Checker jonli update bajarib audit qatori tushganini tekshiradi. Muvaffaqiyat mezoni Hammasi bazadan JONLI tekshiriladi: duplikat 0 + unique indeks; FK convalidated=true + yetim 0; hodisa 600 / arxiv 400 / eski 0; ustun default bilan; trigger haqiqatan yozadi.