SQL表关系(实体框架代码优先)

时间:2013-04-27 18:38:49

标签: sql database-design entity-framework-5 relationship

我刚刚参与了实体框架代码优先,并且以最佳方式关联一组表格。我可能会以完全错误的方式看待这个问题,在这种情况下,如果有人能指出我正确的方向,那就太棒了。

基本上我有3个表,2个主表和1个表,它们包含两个表的公共字段。

现在,我遇到的问题是我应该在2个主表和第3个表之间设置什么类型的关系。两个主表总是与第3个表有1-1个关系,但是第3个表与表1或表2相关,而不是两个。

我可能不是以正确的方式看待这个吗?我应该摆脱第三个表,只在两个表中复制公共字段吗?

这是我的表格结构在妈妈的样子:

表1:
- Id
- RatePricingId
- 姓名
- CreatedOn
- ModifiedOn

表2:
- Id
- RatePricingId
- 姓名
- StartOn
- EndOn
- CreatedOn
- ModifiedOn

表3(常用字段)
- Id
- 星期一 - 星期二 - 星期三 - 星期四 - 周五 - 周六 - 周日
- MinNights
- CheckInOutDays
- RateType
- CreatedOn
- ModifiedOn

干杯,

汤姆

编辑:

我原本设置了表1和表1 2有一个表3的外键,但是在实体框架中使用它时出现问题,这是因为表3 POCO对象现在具有表1和表2的ICollection,当它只与一个表相关时表格对象。

2 个答案:

答案 0 :(得分:0)

好吧,你的问题与实体框架,asp.net等无关,但更多的是与数据库设计有关。你应该重新

唯一的区别似乎是

  • StartOn
  • 恩顿

所以没有更多的背景,我可能只会使用一张桌子......也许你的预期不是这样,但我似乎也更简单。

如果你想保留这三个表,可以从table1到table3创建一个外键,也可以从table2到table3创建一个外键,你就可以了。

答案 1 :(得分:0)

我刚看到Morteza Manavi撰写的一篇博文,我认为已回答了我的问题:

http://weblogs.asp.net/manavi/archive/2011/04/14/associations-in-ef-4-1-code-first-part-3-shared-primary-key-associations.aspx

干杯,

汤姆