database
Sxema quruvchi: constraint'lar hujumga chidaydi
Easybolt+20 XPflagRequired
Yangi buyurtma tizimi uchun sxema kerak. Darsdagi bosh g'oya: butunlik BAZADA himoyalanadi — checker buni so'zda emas, AMALDA sinaydi: sxemangizga noto'g'ri ma'lumot yozishga URINADI va rad etilishini talab qiladi. /root/sql/db.sqliteda tayyor xodim jadvali ham bor (hisobot uchun): xodim(id, ism, bolim, maosh, boshlagan) — ba'zi maosh qiymatlari NULL. Vazifa schema.sql — ikki jadval yarating: mijoz: id integer primary key, email text not null unique, ism text not null; buyurtma: id integer primary key, mijoz id integer not null + references mijoz(id) (FOREIGN KEY), summa integer not null + check (summa 0), holat text not null default 'yangi' + check (holat in ('yangi','jarayonda','yopilgan')). hisobot.sql — xodim jadvalidan: printf('%s (%s)', ism, bolim) ko'rinishidagi satr VA coalesce(maosh, 0) ustuni, ism bo'yicha tartib. Muvaffaqiyat mezoni Checker schema.sqlni toza bazaga qo'llab: yaxshi yozuvni KIRITADI; duplikat email, summa <= 0, ro'yxatdan tashqari holat va (pragma foreign keys = on bilan) yetim mijoz id yozuvlarining har biri RAD ETILISHINI tekshiradi. hisobot.sql referens bilan aynan solishtiriladi.