Oddiy bank tizimini model qilish: - `accounts` jadvali: - `id`, - `owner_id`, - `currency`, - `created_at`. - `transactions` jadvali: - `id`, - `account_id`, - `amount`, - `created_at`. **Talablar:** 1. Kerakli cheklovlar bilan sxemani yaratish uchun SQL yozing (NOT NULL, FK, `amount` uchun CHECK). 2. So'rov yozing: - `account_id` bo'yicha hisobning hozirgi balansini oling (summa `amount`). 3. Qo'shimcha qiyinchilik: debet/kreditni qo'llab-quvvatlash (ikkilamchi yozuv). Tozalash
Golang
Go'da garbage collector qanday ishlaydi? Fazonlar va algoritmni tavsiflang.
Intervyuning umumiy taassuroti, nomzodning darajasi, tavsiyalar
Go'da qanday sinxronizatsiya primitive'lari mavjud? Mutex va RWMutex o'rtasidagi farq nima? Atomicsni qachon ishlatish kerak?
Go'da map qanday ishlaydi? Ichki tuzilishi, buckets, koliziyalar haqida gapiring.
Goroutinlarning OS iplaridan afzalliklari nima?
Ma'lumotlar bazasida qidirishni qanday optimallashtirish mumkin? Indekslar nima va ularning murakkabligi qanday?
Go (scheduler) rejalashtiruvchisi haqida gapiring. U qanday ishlaydi? Hand-off nima?
3. Murakkablik: debet/kreditni qo'llab-quvvatlash (ikkilamchi yozuv). Tozalash CREATE TABLE hisoblar ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE tranzaksiyalar ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES hisoblar(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_tranzaksiyalar_account_id ON tranzaksiyalar(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM tranzaksiyalar WHERE account_id = :account_id; ALTER TABLE tranzaksiyalar ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE tranzaksiyalar DROP CONSTRAINT tranzaksiyalar_amount_check, ADD CONSTRAINT tranzaksiyalar_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM tranzaksiyalar WHERE account_id = :account_id;
Oddiy bank tizimini model qilish: - `accounts` jadvali: - `id`, - `owner_id`, - `currency`, - `created_at`. - `transactions` jadvali: - `id`, - `account_id`, - `amount`, - `created_at`. **Talablar:** 1. Kerakli cheklovlar bilan sxemani yaratish uchun SQL yozing (NOT NULL, FK, `amount` uchun CHECK). 2. So'rov yozing: - `account_id` bo'yicha hisobning hozirgi balansini oling (summa `amount`). 3. Qo'shimcha qiyinchilik: debet/kreditni qo'llab-quvvatlash (ikkilamchi yozuv). Tozalash.