2012-04-18 9 views
1

これを解決する最良の方法は何ですか?データに応じて2つの異なるテーブルを参照しますか?

私は個人からの詳細と会社の詳細を持つ1つのテーブルからなる1つのテーブルを持っています。 これでsalesというテーブルを作成する必要があります。このテーブルは、個人テーブルまたは何かを買った会社かどうかによって、personsテーブルまたはcompaniesテーブルを参照します。 これを行うにはどうすればよいでしょうか?会社/個人のデータを販売テーブルにコピーしますか?私はEF CFとMS-SQL Serverを使用しています

+0

EF CF SQLを追加しないでください。つまり、タグの意味は –

+0

です。企業の詳細と企業の詳細はどういう違いがありますか?もっと良い解決策がこれらの表を組み合わせるだろうかと思います。または、IDとタイプだけのエンティティテーブルを持ち、他のテーブル(販売、詳細など)はすべてそれを指すことができます。販売は、人のミドルネームまたは会社の住所に、その人または会社のIDだけに結びつける必要はありません。 –

+0

これは不可能です。わずかに異なるフィールドが含まれています。それぞれ約7つの異なるフィールド。 – Patrick

答えて

0

次の2つの多対多のテーブルcompany_salesperson_salesを作成することができます。また、売上テーブルに2つの列を追加して使用することができcase when companyId is null then person.name

person 
====== 
personId 
name 
address 

company 
======= 
companyId 
name 
address 

sales 
===== 
salesId 
productId 
amount 

person_sales 
============ 
personId 
salesId 

company_sales 
============= 
companyId 
salesId 
関連する問題