Sadə bank sistemini modelləşdirin: - `accounts` cədvəli: - `id`, - `owner_id`, - `currency`, - `created_at`. - `transactions` cədvəli: - `id`, - `account_id`, - `amount`, - `created_at`. **Tələblər:** 1. Lazımi məhdudiyyətlərlə sxem yaratmaq üçün SQL yazın (NOT NULL, FK, `amount` üçün CHECK). 2. Sorğu yazın: - `account_id` ilə hesabın hazırkı balansını alın (müqəddər `amount`). 3. Əlavə çətinlik: debet/kredit dəstəyini təmin edin (ikiqat qeyd). Təmizləmə
Golang
Go-da çöp toplayıcısı necə işləyir? Fasilələri və alqoritmi təsvir edin.
Müsahibənin ümumi təsiri, namizədin səviyyəsi, tövsiyələr
Go-da hansı sinxronizasiya primitive'ləri mövcuddur? Mutex və RWMutex arasında fərq nədir? Atomics-i nə vaxt istifadə etmək lazımdır?
Go-da map necə işləyir? Daxili quruluşu, buckets, toqquşmalar haqqında danışın.
Goroutine-lərin OS iplerine nisbətən üstünlükləri nədir?
Verilənlər bazasında axtarışı necə optimallaşdırmaq olar? İndekslər nədir və onların mürəkkəbliyi nədir?
Go (scheduler) planlayıcısı haqqında danışın. O necə işləyir? Hand-off nədir?
3. Çətinlik: debit/kredit dəstək (iki qeyd). Təmizləmə CREATE TABLE hesablar ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE əməliyyatlar ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES hesablar(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_əməliyyatlar_account_id ON əməliyyatlar(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM əməliyyatlar WHERE account_id = :account_id; ALTER TABLE əməliyyatlar ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE əməliyyatlar DROP CONSTRAINT əməliyyatlar_amount_check, ADD CONSTRAINT əməliyyatlar_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM əməliyyatlar WHERE account_id = :account_id;
Sadə bank sistemini modelləşdirin: - `accounts` cədvəli: - `id`, - `owner_id`, - `currency`, - `created_at`. - `transactions` cədvəli: - `id`, - `account_id`, - `amount`, - `created_at`. **Tələblər:** 1. Lazımi məhdudiyyətlərlə sxem yaratmaq üçün SQL yazın (NOT NULL, FK, `amount` üçün CHECK). 2. Sorğu yazın: - `account_id` üzrə hesabın cari balansını alın (`amount` cəm). 3. Əlavə çətinlik: debet/kredit dəstəyini təmin edin (ikiqat qeyd). Təmizləmə.