我有两个“实体”表:提供者和用户。Provider 和 User 都可以有多个地址(运输、账单等)。
与其将地址信息放在每个实体表中,我想创建一个它们共同的表:地址表。例如,我研究了创建一个带有主键(身份列)、实体类型(提供者或用户)、实体键(父实体表的主键)和地址类型(运输等)的地址表。带有必要的地址信息。
我遇到的一个问题是外键约束。如果我有一个来自与地址行相关的父实体表的外键,我在尝试插入数据时发现我有外键违规。
我正在考虑删除表中的 FK,然后在 EF 4.1 上创建手动映射,但我不知道该怎么做:
http://i49.tinypic.com/2dt56dv.png(这是表格的图像 - 地址表中的 objectid 包含 userid 或 providerid,objecttype 是一个 varchar,可以是“USER”或“PROV”)
我怎样才能解决这个问题?我想使用一个表格作为地址,但如果没有另一位父母的相关行,我不能为一位父母添加一个孩子。当然,我想继续使用外键来实现引用完整性。
谢谢