Back to questions
Middle+
5
Спроектируйте SQL схему для банковской системы с таблицами accounts и transactions. Какие ограничения и индексы необходимы?
Companies where asked
ООО Дэстэн Партнерс
Answer from AI
sobes.tech AI
Для банковской системы с таблицами accounts и transactions можно спроектировать схему следующим образом:
Таблица accounts:
account_id(PK, уникальный идентификатор счета)user_id(внешний ключ к пользователю, если есть)balance(текущий баланс, decimal)currency(валюта счета)created_at(дата создания)
Таблица transactions:
transaction_id(PK)account_id(FK на accounts.account_id)amount(сумма транзакции, decimal, положительная или отрицательная)transaction_type(например, "deposit", "withdrawal", "transfer")timestamp(время транзакции)description(опционально)
Ограничения:
- В
accountsbalanceне должен быть отрицательным (если бизнес-логика это требует). - В
transactionsaccount_idдолжен существовать вaccounts(FOREIGN KEY). amountвtransactionsне должен быть нулём.
Индексы:
- PRIMARY KEY на
account_idиtransaction_id. - Индекс на
transactions.account_idдля быстрого поиска транзакций по счету. - Индекс на
transactions.timestampдля сортировки и выборок по времени.
Такой дизайн обеспечивает целостность данных и эффективный доступ к информации о счетах и операциях.