存储数百万多对多关系(枢轴)的正确方法

时间:2017-03-18 09:22:04

标签: mysql database

我拥有什么

我有下一个架构:

用户表:

| id | name | ... | created_at | updated_at |

分组表:

| id | name | ... | created_at | updated_at |

消息表:

| id | text | ... | created_at | updated_at |

user_messages表(Pivot):

| user_id | message_id | sent_at |

user_groups表(Pivot):

| user_id | group_id | joined_at |

现在项目只使用MySQL数据库。

问题

存储多对多是传统方式,它很有用。但在这种情况下,我有点困惑。

群组可以包含无限用户,群组每天可以发送10-1000封(或更多)消息。例如,让我们采取一些基本数字(不是现实生活中的数百万):1组,10000名用户,每天100条消息。每天的关系行数:10000 x 100 = 1000000。一组每天一百万行,但组数也可以是数千。

一个可以同时出现的想法:为什么你需要Pivot来发送消息?答案是:需要“目标”发送选项(仅用于为x用户发送消息,而不是为所有用户发送消息)。

问题

我的问题是:“存储此类数据的正确方法是什么?”

也许我需要使用其他数据库系统,或者这个数字对MySQL来说不是问题。

0 个答案:

没有答案