データベース
PostgreSQLを使用し、Rustからの操作にはSeaORMを使用する。原則として アプリケーションコードに生のSQLを書かず、スキーマ変更はmigrationで管理する。
削除可能なデータは物理削除せず、削除フラグと削除日時による論理削除を基本とする。
実際のスキーマは
apps/api/migration/srcを正とする。
以下は設計時点の概要であり、実装との差分は
コード仕様乖離レポートを参照すること。
設計図
users テーブル
files テーブル
folders テーブル
file_permissions(★新規テーブル)
権限モデル(権限モデル)から追加:
share_links(★新規テーブル)
リンク共有(共有リンク)から追加:
推奨インデックス
- files(author_id), files(folder_id), files(is_deleted)
- folders(owner_id), folders(folder_id)
- file_permissions(file_id), file_permissions(user_id)
- share_links(token)
- users(username), users(email)