web-dev-qa-db-ja.com

Firebase vs MySQLデータベース(階層/リレーショナル)

私はFirebaseを初めて使用します。MySQLを使用したことがありますが、 Firebase の利点と、それが提供するもの(リアルタイムデータベース、ログイン(auth)、分析など.

私が取り組んでいるプロジェクトにFirebaseを実装したいと考えています。 MySQLはリレーショナルデータベースですが、私の検索では、FirebaseはJSONツリーのようにデータベースを構造化したため、階層データベースであることがわかりました。

正しい開発方法に従って、ERDSとデータベーステーブルを描画して、プロジェクトがバックエンドとどのように通信するかを理解したいと思います。ただし、SQLではテーブルをリンクするプライマリキーと外部キーがあるため、これらのメディアを使用してデータ構造をどのように表現できるかはわかりません。これはFirebaseにも当てはまりますか?

たとえば、MySQLでは、テーブルは次のようになります。 [d]
ERDは以下を希望しています。

私の質問は:

  • Firebaseは階層データ構造であると言ってもいいですか?
  • Firebaseのデータ構造を示すために、データをERDおよびデータベーステーブルでどのように表現できますか?
  • FirebaseはMySQLのように主キーと外部キーを使用しますか
    その場合、これらはMySQLデータベースのERDおよびテーブルを設計するときと同じように表されますか?
  • Firebaseでデータを構造化し、これらをERDとテーブルに表示する最良の方法は何ですか?

私はFirebaseが初めてなので、どんな助けでもいいでしょう。ありがとう。

12
SumOne

1つの投稿に4つの質問があるという事実からわかるように、これは非常に幅広いトピックです。 SQL開発者向けFirebase シリーズと NoSQLデータモデリング を読むことをお勧めします。

いくつかの簡単な答え:

  • Firebaseは確かに階層的なデータ構造です。実際には、クラウド内の単なるJSONツリーです。
  • eRDに階層データを表示する定義された方法はありません。 JSONツリーを表示するのがより一般的です。
  • Firebaseにはキーの概念があります。キーの概念は、データを保存するノードの名前です。それらをリレーショナルデータベースの主キーと多少比較できます。しかし、管理された外部キーの概念はありません。
  • 2番目の質問として、FirebaseデータベースをJSONとしてモデル化するのが一般的な方法です。これは、データベースが保存する形式でもあるため非常に便利です。
10