こんにちは、もちきなこです。アーキテクチャのことを調べても、わかったようでわからないを繰り返し、日が経っていました。今回は気分転換に私の好きなdatabaseのテーブルの関係性について、基礎的なところから復習していこうと思います。といっても、段々技術が進化して、SQLを書かなくてもよくなってきているらしいのですが、少しずつおさえていきます。
1対多(One to Many)
まずは基本的なよく使う1対多の関係性からです。
この関係は、1つのテーブルに、複数のデータが紐づいていることを表します。例えば、ネットショップで何かを購入した際に、購入履歴があると思います。この場合の、【購入者】ー【購入履歴】の関係が1対多の関係です。一つのデータである購入者(ユーザ)に多数のデータである購入履歴(日付や購入商品などによって変わる)が紐づいています。
基本的なテーブルの考え方はこの考え方が多く、1対1や多対多は稀です。
ER図
ER図は、Entity-Relationship Diagram(実体関連図)のことで、データどうしの関係性を表すものです。
それぞれのテーブルの外部参照キーのつながりや、データの1対多、多対多、1対1の関係性をわかりやすく表しています。テーブルのデータ間をつなげる線の種類によって、それぞれのテーブルから関連しているテーブルの多重度(1対多、多対多、1対1など)を確認できます。
基本的にテーブルを確認するのなら、ER図。
今日はここまで
最近更新も間が空いていて、内容も薄いんですが、今日もここまでです。
いろんなテーブル設計を見て、アンチパターンなどの情報や書籍なども読むようにしているのですが、業務をきちんと理解できていないと最適な設計が難しく、とても難易度が高いものだと考えています。すぐには無理でも、将来的にできるようになりたい!!との心持ちで、少しずつ学習していこうと思います。
基本的には、データを結合していくとしても、パフォーマンスなども考えながら目的のデータをとれないとダメみたいなので、そこまで考えるとなるとちゃんとできるようになるまでに何年かかるんだろうかと思っています。
データ分析を少し勉強したこともありますが、ただデータを分析するのではなく、このデータがどのようにどのデータに関連し、どのようなデータを集めたいのか等目的を明確化することによって、より詳細なデータ活用ができるようになるのかと思っていて、先は長いなと。


コメント