2012-03-17 8 views
1

を参照するために、単一のIDカラムを使用し、...以下...superStuff(タイプ)の値に応じて、ここでMySQLでは複数のテーブル

Table stuffA 
ID 

Table stuffB 
ID 

Table superStuff 
ID 
type 
stuffID 

ようなテーブル構造を持つことが悪いです、 superStuff(stuffID)はstuffA(ID)またはstuffB(ID)のいずれかを参照できますか?あなたが一つのテーブルを照会するとき、それは暗黙的であるので、あなたがtype属性を必要としないほか

Table stuffA 
ID 
superStuffID 

Table stuffB 
ID 
superStuffID 

Table superStuff 
ID 

おかげで、事前に、あなたの助け

+0

2つのテーブルStuffA、StuffBはどちらも同じ種類のものですが、どうしてですか? – Teja

答えて

3

のために私はあなたが他の方法で回避を意味だと思いますまたは他のもの。

注:テーブルに他のフィールドもあり、最小限の例を作るためにそれらを省略したと仮定しています。これが当てはまらない場合は、恐らくそこに階段が必要ないでしょう。

これを理解するには、answerが役に立ちます。

2

Superstuffに立っている人は、誰がその行の父親であるかを知りたい場合は、正しいソリューションです。

1つの選択肢がありますが、あなたのソリューションで提案されていません。

考慮事項:

IDが一意SuperstuffはIDがSuperstuffのIDでテーブルstuffBとstuffAに、データベース全体に示されています。 stuffB上のIDとstuffAはSuperstuffの外部キーです。

Table Superstuff 
ID 

Table stuffA 
ID (exist on superStuff) 

Table stuffB 
ID (exist on superStuff) 
関連する問題