首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何实现3个变量之间的多对多关系,同时限制实际存在的3个变量的组合?

如何实现3个变量之间的多对多关系,同时限制实际存在的3个变量的组合?
EN

Stack Overflow用户
提问于 2018-01-31 05:09:41
回答 1查看 21关注 0票数 0

我想实现一个关系数据库,存储不同共同基金在不同日期的持有量。换句话说,每个观察都是共同基金、股票和日期的独特组合。这3个变量的每个组合也有一个对应的数据点,表示共同基金在给定日期拥有的股票数量。据我所知,我不能用股票、共同基金和日期变量之间的两个简单的多对多关系来实现这一点。

这样做的原因是,虽然共同基金和日期以及股票和日期的组合可能存在,但共同基金、股票和日期的唯一组合可能不存在。例如,苹果(股票)可能在2015年12月31日存在,富达基金(共同基金)可能在2015年12月31日存在,但富达基金可能不会在2015年12月31日拥有苹果。

EN

回答 1

Stack Overflow用户

发布于 2018-02-01 07:18:31

具有任意数量角色的任何关系都可以表示为一个表。您将拥有用于标识每个域以及任何依赖变量的列。然后,从多角色中的组件创建一个复合主键或唯一键。

例如,您可以创建下表:

代码语言:javascript
运行
复制
holdings (mutual_fund PK, stock PK, date PK, shares)

有些人更喜欢引入一个代理/自动编号键作为主键。这很好,只要(mutual_fund, stock, date)的组合被指定为惟一的键。

MySQL工作台和其他类似的数据建模程序在将表与实体集和外键约束与关系等同时,使用了前关系(和前实体/关系模型)概念。它们仍然适合于设计表模式,只要忽略它们的术语即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48530544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档