terminal
Butunlik sxemasi: constraint'lar va to'g'ri turlar
Лёгкийbolt+20 XPflagОбязательная
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 "..."). To'lov tizimi uchun sxema kerak. Checker sxemangizni toza bazaga qo'llab, unga NOTO'G'RI ma'lumot yozishga urinadi — himoya BAZADA ekanini amalda isbotlaysiz. Vazifa /root/db/schema.sql yozing: mijoz: id bigint generated by default as identity primary key, email text not null unique, qoshilgan timestamptz not null default now(). tolov: id bigint generated by default as identity primary key, mijoz id bigint not null references mijoz(id) on delete cascade, summa numeric not null check (summa 0), holat text not null default 'yangi' check (holat in ('yangi','jarayonda','yopilgan')), va ko'p ustunli unique : unique (mijoz id, idempotent kalit) uchun idempotent kalit text not null. Tur tanlash darsdagi jadvaldan: pul — numeric, vaqt — timestamptz, identifikator — bigint identity. Muvaffaqiyat mezoni Checker: yaxshi yozuv kiradi (holat default 'yangi'); duplikat (mijoz id, idempotent kalit) RAD; summa <= 0 va yomon holat RAD; ota mijoz o'chirilsa to'lovlari CASCADE bilan o'chadi; summa aynan numeric, qoshilgan aynan timestamptz.