2011-11-15 8 views
0

どのように2つのテーブルの関係をsqlの多対多関係に変更しますか?私はDBのためにオラクルを使用しています。Sqlは関係を変更します

おかげでテーブル間

+0

あなたが行っている:あなたは、テーブルB多対多の関係をしたい場合は

たとえば、中間テーブルCを作成する必要があります誰かが答えを出すためにこれらの2つのテーブルの内容が何であるかについてより多くの情報を提供する必要があります。 –

答えて

3

の関係は、ほとんど常に一対多、またはONE-TO-ONEです。 2つのテーブルの間には、MANY-TWO-MANYの関係はありません。 MANY-TO-MANYが必要な場合は、関係を保持するために中間関係を作成する必要があります。

create table a (a_id number primary key); 
create table b (b_id number primary key); 
-- c will hold many-to-many relationship between a and b 
create table c (
    a_id number not null references a(a_id), 
    b_id number not null references b(b_id), 
    primary key(a_id, b_id) 
); 
+0

+1テーブル 'c'は多くの異なる名前を持つことができます。マッピングテーブル、ジャンクションテーブル、リレーションシップテーブルなどの情報などがあります。その名前についてはまあまあです。http://stackoverflow.com/questions/3045034/whats-the-correct-name-for-a-関連テーブル - 多対多関係 – MatBailie

+0

"2つのテーブルの間にはたくさんの関係はありません" - どういう意味なのか説明できますか?読んだところでは、それは誤った記述のようです。 1つ、2つ、または3つのテーブルを使用して多対多の関係をスキーマ・モデリングすることができます。 – onedaywhen

+0

@onedaywhen:3つ以上のテーブルでモデル化されたMANY-TO-MANY関係を持つことができます。私はあなたが1つまたは2つのテーブルを持つことができるとは思わない... –

関連する問題