私はEDMにまったく慣れておらず、過去にかなり多くのADO.Net関連のものを作成しました。私は3つのテーブルを持っています:
**Product:**
Prod_ID - PK
**Product_MaxLoan**
Prod_ID - PK
**Product_MinLoan**
Prod_ID - PK
MS SQL 2005でホストされているこれらのテーブルには、まだFKまたは制約が構成されておらず、概念的な1対1の関係があります。たとえば、IDが1のProductのすべての行には、Product_MaxLoanとProduct_MinLoanにそれぞれIDが1の行があります。
Visual Studio 2010で、カーディナリティが1対1に設定されるようにEDMを正しく設定したいのですが、以前はテーブルにFK制約があり、次の設定がありましたが、これでは0..1カーディナリティしか許可されませんでした。 (実際には、製品にProduct_MaxLoanまたはProduct_MinLoanがない場合があります)。
**Product:**
Prod_ID - PK
**Product_MaxLoan**
ID - PK
Prod_ID - FK
**Product_MinLoan**
ID - PK
Prod_ID - FK
質問:
- SQL 2005でこれらのテーブルを設定するためにどのようなアドバイスをしますか?EDMの1対1の関係の場合、FKを設定しますか?
- データベースからインポートするときにEDMが読み取るPK関係をSQL2005で設定できますか?
- 製品には約300のプロパティが含まれているため、このすべてのデータを1つのテーブルに含めると、データベースの正規化が不十分になります(したがって、多くの1-1テーブル)。これらのすべてのプロパティを単一のEDMクラスに入れるのがベストプラクティスでしょうか?私の直感的な反応は、DBで構造化されているため(これは私のADOの遺産が前面に出てきています)、製品の論理部分ごとにクラスを持って、それを分解することです。
アドバイスをいただければ幸いです。
よろしくお願いします、
マーク