这需要多对多关系吗?

Do this required many to many relationship?

这是我的数据库设计:

Portfolio:
   -  id
   -  name
   -  invested
   -  total
   - ...... etc

还有我的第二个table

Investments: 
   -  id
   - portfolio_id
   - amount
   --- etc

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

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

由于每个用户都有独特的个人资料,投资仅与他们的个人资料相关(其他人无法访问)所以我应该在这里使用一对多吗?

这条评论不适合放在评论区。

要使关系成为多对多关系,您需要添加一个额外的 table 来表示关系。例如:

Portfolio:
   - id
   - name
   - invested
   - total

Portfolio_Investment:
   - portfolio_id
   - investment_id

Investments: 
   - id
   - amount

请注意 portfolio_id 列不再出现在 Investments 中。

考虑一个关联实体在两个 table 之间建立桥梁,而不是依赖多对多关系。

如果您需要将一项投资映射到多个投资组合,这很有用,但为了回答您的问题,如果您这样做,每项投资都可以链接到多个投资组合,这不会产生任何影响感觉。虽然可以投资相同的股票名称,但这需要 investment_options 单独的 table,而不是与不同投资组合相关联的完全相同的投资。您的 table 不应该是多对多的。

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