我想实现一个关系数据库,存储不同共同基金在不同日期的持有量。换句话说,每个观察都是共同基金、股票和日期的独特组合。这3个变量的每个组合也有一个对应的数据点,表示共同基金在给定日期拥有的股票数量。据我所知,我不能用股票、共同基金和日期变量之间的两个简单的多对多关系来实现这一点。
这样做的原因是,虽然共同基金和日期以及股票和日期的组合可能存在,但共同基金、股票和日期的唯一组合可能不存在。例如,苹果(股票)可能在2015年12月31日存在,富达基金(共同基金)可能在2015年12月31日存在,但富达基金可能不会在2015年12月31日拥有苹果。
发布于 2018-02-01 07:18:31
具有任意数量角色的任何关系都可以表示为一个表。您将拥有用于标识每个域以及任何依赖变量的列。然后,从多角色中的组件创建一个复合主键或唯一键。
例如,您可以创建下表:
holdings (mutual_fund PK, stock PK, date PK, shares)
有些人更喜欢引入一个代理/自动编号键作为主键。这很好,只要(mutual_fund, stock, date)
的组合被指定为惟一的键。
MySQL工作台和其他类似的数据建模程序在将表与实体集和外键约束与关系等同时,使用了前关系(和前实体/关系模型)概念。它们仍然适合于设计表模式,只要忽略它们的术语即可。
https://stackoverflow.com/questions/48530544
复制相似问题