Open2

Flutter × Firebase 実践備忘録

kamitekamite

データベース設計

結論

ネスト(SubCollection)は基本的に使用せず、リレーションは基本的にRDBと同じ形で行っていく

class User {
 id: docId
 name: string
 taskId: string
}

class Task {
 id: docId
 name: string
}

履歴機能のような元のデータを参照しなくていい場合はSubCollectionを使用するものとする

経緯

SubCollectionは非常に有用な機能だが、弱点は以下だと考える

  • Userを取得するときすべてのTaskを取得してくるので数が多くなると重くなる
  • Firestore管理画面での可読性の低さ
  • Task単体を取得したい時、Userから取得しなければいけなくなってしまう

参考リンク

https://firebase.google.com/docs/firestore/manage-data/structure-data?hl=ja
https://qiita.com/1amageek/items/d606dcee9fbcf21eeec6#1-subcollectionを利用した構造
https://i-ssue.com/topics/e4c5b323-990b-4bf4-a10a-cec9abcc6555

kamitekamite

モデル設計

結論

  • id: docId docIdはドキュメントの中にも持っておく
  • createdAt,updatedAtは基本的に持っておく