我正在使用表来集中地址。 客户和供应商会提及地址。
客户有地址,地址可能与客户相关联,也可能没有。< / p>
供应商有地址,地址可能与供应商相关联,也可能没有。< / p>
为确保地址与多个客户或供应商无关,我在上有唯一索引 AddressID 列上的客户和供应商表。
我怀疑这种关系是不正常的,因为我无法使用FluentAPI使用Entity-Framework映射它。
修改
答案 0 :(得分:1)
你的模特似乎合情合理。当你想要强制执行1-1关系时,拥有第二个表的优点对每个人来说可能并不明显。
我可以想到两个不错的理由:
可能还有其他原因。我不能说为什么EF难以表达这种关系。
答案 1 :(得分:1)
在您当前的设计中,这不是EF问题,而且它本身不能阻止您为客户和供应商分配相同的地址。如果您走这条路,您将负责通过模型中的业务规则和验证来强制执行此唯一性。
另一方面,除了Linoff在答案中指出的内容之外,您的模型设计的正确性(或不正确性)取决于您的问题的性质以及您的业务的重要性和地址。例如,如果这是Post Office的应用程序,那么Address是一个单独的表,因为它将是您的应用程序的核心概念之一。但如果没有,使用当前的方法,您将增加模型的复杂性。