首页 新闻 赞助 找找看

联合主键做外键

0
悬赏园豆:20 [待解决问题]

现有A B C三个对象

定义 D 以 AId BId做联合主键,与A、B做外键

现在要定义 E,以D的主键DId(即 AId、BId)跟CId做主键,该如何定义呢?

现实的沙漠的主页 现实的沙漠 | 初学一级 | 园豆:180
提问于:2012-01-11 10:13
< >
分享
所有回答(6)
1

尽量不要用联合主键做外键,因为这不符合关系数据库的范式要求(应该是第三范式吧,忘了)。

如果有确实有这种需求,可以再建一张表,专门负责关系映射,如:[F](FID, AID, BID, CID), 然后在[E]中,加一个FID,设置为[F]的外键。

咖啡色 | 园豆:208 (菜鸟二级) | 2012-01-11 10:29
0

一楼说的对,不要用联合主键做外键,也不要用联合主键,表里定义一个没有意义的Id列作主键

谦行 | 园豆:473 (菜鸟二级) | 2012-01-11 11:48
0

在表里再加一个额外的id作为主键

Michael020 | 园豆:205 (菜鸟二级) | 2012-01-11 12:18
0

用一楼的方法,建一个关系映射表

laura_lichanghong | 园豆:116 (初学一级) | 2012-01-11 16:12
0

Nice,学习了。

小水儿 | 园豆:202 (菜鸟二级) | 2012-10-29 09:27
1

这家伙不给分的

极无宪 | 园豆:37 (初学一级) | 2014-01-08 20:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册