专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能数据库开发

如果实现一对多关系的版本管理?解决办法

发布时间:2010-05-24 21:17:41 文章来源:www.iduyao.cn 采编人员:星星草
如果实现一对多关系的版本管理?
高手请帮释疑:假如有一种数据关系,事物A对应于多个事物B,且这种关系在不同时期的关系是不同的。如何用关系表表达这种关系呢?

假如没有关系版本差异,可以很容易使用一对多关系实现如下:

A表字段:
Akey Aname

B表字段:
Bkey Bname


C关系表字段:
Ckey Akey Bkey

select * from C WHERE C.Akey='1001'可以获得关系列表

但目前要求能通过Akey找到不同版本的B列表,如何实现呢?

------解决方案--------------------
你这个结构是多对多的,需要关系表。
一对多,不需要关系表,只需要在“多”的那张表加个“少表主键”的外键,就是在B里加AID
然后就查询就可以了 

select B.Bname from A inner join B on A.AID=B.AID where A.AID=123
你还可以在后边加Group by B.Bname或者 B.AID之类的聚合查询。

你是SQL基本功还不到家,这类问题,老夫熟悉的很。
十年数据库经验了,我已经不再关心数据库的问题了,那是小孩子的事情了。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: