永続化
データベースは検索・更新・同時アクセス・整合性を扱います。トランザクションのACIDはAtomicity(一括性)、Consistency(一貫性)、Isolation(分離性)、Durability(永続性)です。
SQLとパラメーター化
ユーザー入力をSQL文字列へ直接連結せず、プレースホルダーで値を渡します。
// 擬似コード。実際のAPIはDBクレートに依存します。
// query("SELECT id FROM users WHERE name = ?").bind(user_name)
RustではSQLxやDieselなどを検討し、接続プール、トランザクション境界、マイグレーション、タイムアウトを設計します。
設計演習
口座AからBへの送金について、残高確認・引き落とし・入金をどこで確定またはロールバックするか、同時送金時に守る条件を説明してください。