追跡します。 アーティストはトラックを追加することができます。 各アルバムには多くの曲があります。エンティティ関係は、我々は3つのテーブルを持っている
ここで、曲がどのアルバムにも属しておらず、アーティストからの1曲です。だから、どのようにエントリを行うには?トラックテーブルのFOREIGN KEY album_idで何をすべきですか? nullでもかまいませんか?
追跡します。 アーティストはトラックを追加することができます。 各アルバムには多くの曲があります。エンティティ関係は、我々は3つのテーブルを持っている
ここで、曲がどのアルバムにも属しておらず、アーティストからの1曲です。だから、どのようにエントリを行うには?トラックテーブルのFOREIGN KEY album_idで何をすべきですか? nullでもかまいませんか?
スタースキーマ(ディメンションおよびファクトテーブル)を使用する場合、「トラック」のグレインを持つファクトテーブルを持つことができます。したがって、各行は1つのトラックになります。トラックにアルバムがない場合、アルバムの外部キーは0に設定されます。
アルバムテーブルには、0キーを含む行があり、「使用できません」またはダッシュ' - ')、またはあなたの報告目的に合ったものを使用してください。
あなたはそれをnullにすることができますが、トラック数をカウントしてアーティストに参加している場合、その行はクエリの書き方によっては返されません。
例クエリ:
select t.track_id, t.track_name, a.album_id, a.album_name, art.artist_id,art.artist_name
from FACT_MUSIC_DB F
JOIN DIM_TRACKS T ON T.TRACK_ID = F.TRACK_ID
JOIN DIM_ALBUMS A ON A.ALBUM_ID = F.ALBUM_ID
JOIN DIM_ARTISTS ART ON ART.ARTIST_ID = F.ARTIST_ID
私は新しいテーブル...歌を作り、アルバムや曲の外部キーとトラックテーブルにリンクテーブルを作成することをお勧めします。外部キーにNULLを設定すると、外部キーが設計されたものが破損します。詳細はhttps://en.wikipedia.org/wiki/Foreign_keyを参照してください。
エンティティの関係を表す3つのテーブルがあります。これらはエンティティセットをその属性に関連付けます。エンティティセット間の関係は明確に定義されていません。各Artist
は多くのAlbums
を持つことができますが、にはどれくらいの数がありますか?Album
には?各Artist
には多くのTracks
を含めることができますが、にはどれくらいの数がそれぞれTrack
にありますか?各Album
には多くのTracks
を含めることができますが、どれくらい多くのAlbums
を各Track
に含めることができますか?
実際のところ、曲は多くのアルバムに表示されますが、曲の各トラック/アピアランスは別個のエンティティとして表示される可能性があります。 Track
にはArtists
が多く含まれていてもかまいませんが、Track
は1つだけAlbum
に属すると仮定します。さらに、Albums
とArtists
の間の関連付けを直接モデル化する必要はないと仮定します。代わりに、Tracks
に関連付けられたArtists
の結合を各アルバムの適切なクエリで簡単に取得することができます。
これは、二つの関係の関係が必要です:あなたはTracks
許可する場合
TrackArtist (TrackID PK/FK, ArtistID PK/FK)
TrackAlbum (TrackID PK/FK, AlbumID FK)
Track
とAlbum
との間の関係は、NULL可能AlbumID
カラムとして、Track
エンティティ関係/テーブルに非正規化することができますAlbums
から独立して存在すること。
リレーションシップに異なるカーディナリティが必要な場合は、結果が多少異なるように見えます。 Albums
とArtists
の間の関係を直接記録する場合は、状況が大きく異なるため、TrackArtist
とAlbumArtist
の整合性について考える必要があります。
アルバムには外部キー(アーティスト)がありますので、利用できないと呼ばれるレコード0はどのアーティストに属していますか?\ –
スタースキーマを作成している場合です。リレーショナル・テーブルの設定は異なります。あなたのディメンション(アーティスト、アルバム、トラック)は一緒には参加しません。彼らはすべてファクトテーブルに参加します。そこから関係を照会することができます。私は私の答えにテーブルの設定の写真を追加しました。 – Hana