Open2
Flutter × Firebase 実践備忘録
データベース設計
結論
ネスト(SubCollection)は基本的に使用せず、リレーションは基本的にRDBと同じ形で行っていく
class User {
id: docId
name: string
taskId: string
}
class Task {
id: docId
name: string
}
履歴機能のような元のデータを参照しなくていい場合はSubCollectionを使用するものとする
経緯
SubCollectionは非常に有用な機能だが、弱点は以下だと考える
- Userを取得するときすべてのTaskを取得してくるので数が多くなると重くなる
- Firestore管理画面での可読性の低さ
- Task単体を取得したい時、Userから取得しなければいけなくなってしまう
参考リンク
モデル設計
結論
-
id: docId
docIdはドキュメントの中にも持っておく -
createdAt
,updatedAt
は基本的に持っておく