私は当然フロントエンドの人ですが、データベース設計とバックエンド開発者がここ数日私の興味をそそり、非常に混乱しています。頭が痛くならないように、これらの概念を十分に理解したいと思います。
私はアクティブレコードのようなORMを扱うことに慣れています。レールを介してユーザーオブジェクトを想像すると、人のテーブルの行に関連している人のオブジェクトを想像します。基本的にわかりました。
だから、mongodbのような非リレーショナルデータベースは、「ビッグデータで高速」であるだけでなく、oop言語での開発をより自然にするためにクールでもあることを読みました(なぜですか?)。次に、ほとんどのデザインパターンはおそらく真にリレーショナルではないことも読みました。わかりました、これは私が迷子になるところです。
1)リレーショナルデザインと非リレーショナルデザインの基本的な例は何ですか?2)上記と同様に、構造化データと非構造化データの例は何ですか(これは上記の言い換えですか?)
ですから、私が(私がすぐに知らないうちに)感じていることを考えると、私がモデル化しようとしたほとんどすべてのタイプのプロジェクトはリレーショナルでした。しかし、多分私は技術よりもセマンティクスを使用しているだけです。たとえば、投稿やコメント。相互に関係しています。そこにユーザーを追加します。最近のほとんどのアプリには、他のデータ/オブジェクトを介して到達するのに常に役立つデータがあるようです。それは関係的ですね。
あまり一般的ではない何かを説明する何かはどうですか。
ワークアウトトラッカーアプリを作成していたとしましょう。ユーザー、エクササイズ、ワークアウト、ルーチン、log_entriesがあります。
ワークアウトをグループ化するルーチンを作成します。トレーニングは、エクササイズのグループです。エクササイズのログエントリを通じて、担当者と体重を記録します。これはリレーショナルデータですか、それとも非リレーショナルですか?モンゴはこれをモデル化するのに最適ですか、それともひどいですか?
統計のようなものが関係してくると聞きました。それは上記の例にどのように影響しますか?人々は通常どのような統計について話しますか?
ユーザーの体重、身長、体脂肪など、他のものの追跡を追加したとしましょう。それは物事にどのように影響しますか?
ご理解のほどよろしくお願いいたします。
編集:誰もが一方のためにもう一方のために開発する方が簡単かもしれない理由を説明できますか?mongoのようなものを使用しているのは、「ge it」すると「クリック」が増えるだけでなく、移行を実行する必要がないためです。
もう1つ、ORMのような抽象化を使用する場合、それは本当に重要ですか?もしそうならいつ?私にとっての初期値は、データのクエリとオブジェクトのモデリングのしやすさです。それを簡単にできるものは何でも、私は満足しているでしょう。正直なところ、データをモデル化しようとすると、頭を悩ませることがよくあります。