世界一適当な技術ブログ

日々学んだ内容をとにかくにブログ形式でアウトプットします。(技術系中心)基本自分用備忘録です。

Firestore(NoSQL)について

Firestore(NoSQL)について

個人開発でNoSQのFirestoreを利用することになりました。

ただ、RDBしか触ったことがなく、色々と調査したのでその備忘録を残します。

Firestoreとは?

Firestoreとはドキュメント指向NoSQLデータベースです。

f:id:lhiroki1205:20210521201029p:plain

RDBとFirestore(NoSQL)の比較

1. RDBでは基本的には、正規化を徹底するが、Firestoreでは、非正規化を許容する、むしろ活かす
2. RDBではテーブル結合(inner join, outer join)できるが、Firestoreではテーブル結合できない

Firestoreの利用メリット

1. 既存のDBと比較して、今からNoSQLを始める学習コストを考慮しても開発速度が早い
2. スケールするまでは無料で使える
3. グロースさせるまでをFirebaseで完結できる

FireStore構造について

■ コレクション データベースのルート要素で、ドキュメントの集合。 ドキュメントをまとめるフォルダのようなイメージです。

users: {
  userdocument1
  userdocument2
  userdocument3
}

■ ドキュメント データおよびサブコレクションの集合 データをまとめた紙のようなイメージ

key1 : value1
key2 : value2
key3 : value3

■ データ キーとバリューのセット ドキュメントに記載される最小単位のデータのイメージ

key1 : value1

データタイプ一覧 f:id:lhiroki1205:20210521202531p:plain

FireStore参照方法例

■ コレクション

usersコレクションを参照取得

var usersCollectionRef = db.collection('users');

FireStore CRUD処理

こちらの記事に詳しく記載されている。

■ ドキュメント usersというコレクション内のalovelaceドキュメントへの参照取得。

var alovelaceDocumentRef = db.collection('users').doc('alovelace');

参考

Firebase Cloud Firestoreの使い方 - Qiita

[Firebase]Firestoreの設計の思考法(正規化/非正規化)