我对 EDM 很陌生,过去写过很多 ADO.Net 的东西。我有三张桌子:
**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 中,我想正确设置 EDM,以便将基数设置为 1 到 1。我之前对表和以下设置进行了 FK 约束,但是,这只允许 0..1 基数(我想是为了迎合 Product 可能没有 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 中的一对一关系,您会设置 FK 吗?
- 您能否在 SQL 2005 中设置 EDM 在从数据库导入时读取的 PK 关系?
- 一个产品包含大约 300 个属性,因此在单个表中包含所有这些数据将是糟糕的数据库规范化(因此有许多 1 - 1 个表)。最佳实践是将所有这些属性放入单个 EDM 类中吗?我的直觉反应是将其分解为数据库中的结构(这是我的 ADO 遗产),产品的每个逻辑部分都有一个类。
您的建议将不胜感激。
最好的祝福,
标记