Осон банк системасини моделлаштиринг: - `accounts` таблиси: - `id`, - `owner_id`, - `currency`, - `created_at`. - `transactions` таблиси: - `id`, - `account_id`, - `amount`, - `created_at`. **Талаблар:** 1. Шема яратиш учун SQL ёзинг, зарур чекловлар билан (NOT NULL, FK, `amount` учун CHECK). 2. Сўров ёзинг: - `account_id` бўйича ҳисобнинг ҳозирги балансини олинг (миқдор `amount`). 3. Қўшимча мураккаблик: дебет/кредитни қўллаб-қувватлаш (икки ёзув). Тозалаш
Golang
Чӣ гуна кор мекунад ҷамъоварии партовҳо дар Go? Фазҳо ва алгоритмро тавсиф кунед.
Тасаввуроти умумии мусоҳиба, сатҳи номзад, тавсияҳо
Кадом primitives-и синхронизатсия дар Go вуҷуд дорад? Фарқи байни Mutex ва RWMutex чист? Вақте ки атомикҳоро истифода бурдан лозим аст?
Наслиҳаи харита дар Go чӣ гуна аст? Дар бораи сохтори дохилӣ, buckets, коллизияҳо гап занед.
Афзалиятҳои goroutines дар муқоиса бо сӯрохиҳои OS чист?
Чӣ тавр метавон дарёфти дар базаи додаҳоро оптимизатсия кард? Индексон чӣ ҳастанд ва чӣ гуна мураккабият доранд?
даро о планировщике Go (scheduler). Чӣ гуна кор мекунад? Ҳанд-оф чист?
3. Тавсия: дастгирии дебит/кредит (дурустии дугона). Тозалаш CREATE TABLE ҳисобҳо ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE транзаксияҳо ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES ҳисобҳо(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_транзаксияҳо_account_id ON транзаксияҳо(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM транзаксияҳо WHERE account_id = :account_id; ALTER TABLE транзаксияҳо ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE транзаксияҳо DROP CONSTRAINT транзаксияҳо_amount_check, ADD CONSTRAINT транзаксияҳо_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM транзаксияҳо WHERE account_id = :account_id;
Моделгиросяи одовари содироти системи бонк: - Таблиса `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Таблиса `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Талабҳо:** 1. SQL нависед барои сохтани схемаи бо маҳдудиятҳои зарурӣ (NOT NULL, FK, CHECK дар `amount` на нулӣ). 2. Савол нависед: - ҳозираи балансро барои `account_id` (ҷамъи `amount`) гиред. 3. Қиинӣ иловагӣ: дастгирӣ кардани дебит/кредит (навишти дукарата). Тозакунӣ.