2016-09-16 21 views
0

私はER図が初めてです。私は、人種、国籍、年齢などの属性によって人口死亡者の年間料金を表示し、フィルタリングするためのアプリケーションを作成しています。しかし、これらの属性をすべて1つのエンティティに入れることはできません。なぜなら、それらをまとめるために必要なデータセットがないからです。たとえば、Table: race(Columns: Year, Race, Death Toll)Table: age(Columns: Year, Age Group, Death Toll)のデータセットがありますが、Table: race_age(Columns: Year, Race, Age Group, Death Toll)のデータセットはありません。結果として、私はこれらのエンティティを分離する必要があります。私はdeath_toll属性がすべてのエンティティに対して繰り返されていることに気づいたので、私が行ったことはISA階層を作成することです。しかし、私は奇妙な命名規則を見つけ、私は正しいかどうかわかりません。私が正しいか間違っているかどうかを確認し、正しい図に案内してください。あなた人口ソートアプリケーションのER図

enter image description here

+1

"filtered_by_age"は実体ではありません。ジェネリックERモデルを実行している場合は、データセットやフィルタについて心配する必要はありません。エンティティは物、属性は物事に関する事実、残りはERモデルに属しないその他のものです。 –

+0

はい、あなたは正しいです。しかし、ERモデルをリレーショナル・モデル(これらのエンティティに従って表を作成する)に変換すると、データを移入する際に問題が発生します。私たちは描画されたERモデルに基づいてデータを設定することはできません。これはER図を無意味にする。 – user859385

+0

これは非常に哲学的ですが、私は個人的にER図の意味を「データが実際に何であるか」と見ていますが、DBリレーショナルモデルは「データをDBでどのように整理するか」を意味します。必ずしもentity = tableである必要はありません。あなたのデータを理解するためにERダイアグラムを描き、その後にDBソリューションを構築する方法を考えます。しかし、これはあなたの元の質問からさらに遠くになり始めて、私はスパムしたくありません! –

答えて

0

をありがとう、私はあなたのテーブルを理解していれば、彼らは機能的な依存関係を実装します。それに基づいて

race: (Year, Race) -> Death Toll 
age: (Year, Age group) -> Death Toll 
race_age: (Year, Race, Age Group) -> Death Toll 

を、私はこのようなERモデルを構築します:

Mortality by age and race ERD

あなたのテーブルは、年、年齢、人種、死亡者数の関係関係。キーのコンポーネントは、関係のエンティティを識別します。