首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这需要多到多的关系吗?

这需要多到多的关系吗?
EN

Stack Overflow用户
提问于 2021-07-26 12:28:04
回答 2查看 55关注 0票数 1

这是我的数据库设计:

代码语言:javascript
复制
Portfolio:
   -  id
   -  name
   -  invested
   -  total
   - ...... etc

我的第二张桌子

代码语言:javascript
复制
Investments: 
   -  id
   - portfolio_id
   - amount
   --- etc

因此,根据逻辑,每个用户只能有一个投资组合,每个投资组合可以有多个投资:

所以基本上“投资组合”可以有多个投资,而“投资”也可以有多个投资组合,对吗?(每个用户都有一个组合),因此我应该使用多对多还是一对多?

由于每个用户都有独特的配置文件,投资只涉及到他们的配置文件(它不能被其他人访问),所以我应该在这里使用一个对多个吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-26 13:41:33

考虑一个关联实体来连接两个表,而不是依赖于多到多的关系。

如果您需要将一项投资映射到多个投资组合,这是很有用的,但是要回答您的问题,如果您这样做,每个投资可以链接到多个投资组合,这是没有任何意义的。虽然可以对相同的股票名称进行投资,但这需要为investment_options提供一个单独的表,而不是与不同的投资组合相关联的相同的投资。你的桌子不应该是多对多的。

既然您说每个用户都有一个独特的配置文件,那么解决问题的正确答案就是使用一对多的关系,将一个Portfolio链接到多个Investments

票数 0
EN

Stack Overflow用户

发布于 2021-07-26 13:29:30

这是一个不适合评论部分的评论。

要使关系是多对多的,您将需要添加一个表示关系的额外表。例如:

代码语言:javascript
复制
Portfolio:
   - id
   - name
   - invested
   - total

Portfolio_Investment:
   - portfolio_id
   - investment_id

Investments: 
   - id
   - amount

注意,portfolio_id列不再存在于Investments中。

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

https://stackoverflow.com/questions/68529830

复制
相关文章

相似问题

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