【发布时间】:2018-07-02 15:05:21
【问题描述】:
有 2 个实体:“A”和“B”。 本质上,“A”有字段:
- A_id (PK)
- B1_id (FK)
- B2_id (FK)
- B3_id (FK)
本质上是“B”:B_id等字段。是否可以与 EF 和 MS 建立一对一的关系,其中“B1_id”、“B2_id”和“B3_id”是表“B”中一个属性 B_id 的外部键。如果可以的话,我怎么命名类“A”中的导航属性,我觉得应该是三个?
【问题讨论】:
-
什么是基数?它们是一对一的还是一对多的?如果是后者,则必须建立一个交集表。为什么一个表中的多个列都引用另一个表中的一列?另外,我认为你不能从整数到二进制进行 FK - 我不确定这是否是一个错字。
-
除了前面提到的数据类型问题之外,这听起来像是一个有问题的设计。但很难确定,因为这是匿名发布的。
-
除了数据类型不匹配以及联结表可能是更好的结构之外,您不能在 SQL Server 中创建从一个表到另一个表的多个外键,具有声明性引用完整性.您可以在 Postgres 甚至 SQLite 中使用,以防这些对您来说是可行的替代方案。
-
1.这是一个错字,表“B”的B_id列应该是Int类型2。这个连接的意思是表“B”存储图像,而表“A”存储3个对表“B”中各种图像的引用.所以这是一对一的关系 3。我不确定,但我也认为这是一个糟糕设计的例子。如果您有建议,我希望看到更好的解决方案
标签: c# sql .net sql-server entity-framework