すべてにはエンティティ、属性、値があります。すべてが論理的にこれに還元されます。 はすべてエンティティ、属性、値を持っているので、常にすべてが同じであると主張することができます。すべてのデータ構造は - その観点から - 同一です。
スタースキーマの図を描画してください。ファクト(WebサイトのGETリクエスト)と、Time、IP Address、Requested Resource Path、Session Userなどのいくつかのディメンションがあります。
実際に実際の図を描画してください。言葉を読まないで、5つのテーブルの絵を見てください。
画像を描画した後、単一のEAVテーブルを描画します。
実際に、エンティティ、属性、および値の列を使用して画像を描画します。言葉を読まないでください。一つのテーブルの絵を見てください。
大丈夫ですか?
ここで、2つの写真の違いをすべて書き留めてください。テーブルの数。列の数。各列のデータ型。すべての違い。
私たちは行っていません。
スタースキーマを使用する特定のユーザーの曜日別GETリクエストをカウントするSQLクエリを作成します。実際にSQLを書いてください。それは3テーブルの結合です。 GROUP BYとWHEREを使用する
EAVテーブルの曜日別にGET要求をカウントするSQLクエリを試行して書き込みます。
大丈夫ですか?
2つのクエリの相違点をすべて書き留めてください。例えば、SQLの複雑さ。 SQLのパフォーマンス。 SQLを書くために必要な時間。
ここで違いを知っています。
+1違いは分かりませんが、それは素晴らしい答えです。おかげさまで – fancyPants
さて、あなたが言ったことをやった、もし私が主EAVテーブルを最小限に抑えておけば、私は多くの相違を見る。しかし、EAVメインテーブルにいくつかの一般的な属性を追加するとすぐに、それは非常に星状になります。 –
"EAVメインテーブルへの一般属性"?どういう意味ですか? EAVテーブルには、エンティティ名、属性名、および値の3つの属性しか指定できません。あなたは何について話していますか? –