2016-11-04 7 views
0

3つのテーブルを持つデータベースを設計しています。2つの1:n関係のメディアとレッスンテーブルの設計

メディアテーブルには、n種類のレッスン(1:nの関係)があります。

すべてのレッスンにはいくつかのメディアがあります(1:nの関係)。

これは正しいデザインですか?この問題の別の解決策がありますか?

enter image description here

+0

*デザインメソッドへの参照は何ですか*あなたは次のとおりですか?あなたがそれに従っていない場合、どのように何かを達成することを期待していますか? – philipxy

答えて

0

は、なぜあなたはそれらの両方にIDを持っている必要がありますか?

[メディア] - > ID、LessonId、名前、...

[レッスン] - > [ID、名前、...

あなたが参加するクエリを経由してレッスンからメディアを取得することができます。

+0

テーブルはお互いに関連しています。しなければならない。 – AminH86

+0

私はあなたが二重関係を持たなければならない理由を得ることはできませんが、[MediaLesson] - > MediaId、LessonId – BlueSalamander

0

TL; DRデザインについて学んでください。教科書を読む。特定の設計方法に従う。このデザインは、基本を学ぶ必要があることを示唆しています。

あなたのデザインは適切ではありません。あなたは私たちに十分なことを話していないので、私たちにはわかりません。あなたのデザインでメディア(多分)は「レッスン(それがあなたが何を意味しているか)とレッスン(たぶん)」に「メディア(あなたが何を意味していても)を持っています。あなたのメッセージの残りの部分は、メディアに関するテーブル、レッスンに関するテーブル、説明していないが「持っている」アプリケーション関係/関連に関するテーブルを必要としている可能性があります。他のテーブルを参照するnull可能なFKの使用はおそらく適切ではありませんが、適切なものはテーブルの意味に依存します。

行がこれらのテーブルのいずれかに入るアプリケーション基準は何ですか? 最初にが必要です。関心のあるアプリケーション関係を特定し、それぞれの特徴を特定するために述語 - 列名でパラメータ化された(名前付き)空白文ステートメントテンプレート - 行そのテーブルに入っているときに真の声明になります。

straightforwaredデザインは、(各メディア、レッスン&タイプが1名いる場合)次のようになります。

Media(mname,tname) -- media MNAME is of type TNAME 
    PK(mname) 
Lesson(lname) -- lesson LNAME exists 
    PK (lname) 
Whatever(lname, mname) -- blah lesson LNAME blah blah media MNAME blah 
    PK (lname, mname) 
    FK (lname) references Lesson 
    FK (mname) references Media 

をしたい場合は、IDS(なぜ?):

Media(mid, name, tid) 
    PK (mid) 
    FK (tid) references Type 
Type(tid, name) 
    PK(tid) 
Lesson(lid, name) 
    PK(lid) 
Whatever(mid,lid) 
    FK (lid) references Lesson 
    FK (mid) references Media 

ER設計方法を呼ぶだろうメディア、レッスン、タイプのエンティティテーブル、および関係テーブルまたは関連テーブル。

「カーディナリティ」とは異なることを意味し、さまざまな設計方法で異なって説明されています。あなたはどちらを使っていますか?

もっと一般的には、アプリケーションに合わせてテーブル値が意味をなさならなければならない制約を教えてください。 FK制約は、テーブル内の列のリスト内の値は、別の場所にも表示される必要があることを示しています。蓋と中腹が何かに参加すれば、その蓋は別の中央に入りますか?逆に?レッスン/メディアのすべての蓋/中が何にでも表示される必要がありますか?拘束は、選択された述語とアプリケーションの状況がどのような状況で起こるかによって、に従います。

特定の制約が満たされている場合は、テーブルを再配置して同じ情報を記録することはできますが、それらを強制的に保持したり、新しいデザインの制約を簡単にしたり、 。

関連する問題