Mysql 设计数据库以处理向多个用户发送信息

Mysql 设计数据库以处理向多个用户发送信息,mysql,database-design,relational-database,Mysql,Database Design,Relational Database,我正在使用PHP,我需要为一个web应用程序设计一个数据库,其中一个注册用户可以向多个其他注册用户发送一个请求,我还需要给该请求一个唯一的ID。 我现在将它保存在一个表中,如下所示 ID || sent_to || request details || more details ID字段为整数,每次用户发送请求时自动递增以计数,从而为每个请求提供唯一的ID sent\u to字段是一个100的varchar,其中的值是接收方用户的id,以逗号分隔(12,13,17,n) 我在这里的问题是,从我

我正在使用
PHP
,我需要为一个web应用程序设计一个数据库,其中一个注册用户可以向多个其他注册用户发送一个请求,我还需要给该请求一个唯一的ID。 我现在将它保存在一个表中,如下所示

ID || sent_to || request details || more details
ID
字段为整数,每次用户发送请求时自动递增以计数,从而为每个请求提供唯一的
ID

sent\u to
字段是一个100的varchar,其中的值是接收方用户的
id
,以逗号分隔(12,13,17,n)


我在这里的问题是,从我在线阅读的内容来看,我明白我应该为每个接收者创建一个单独的行,而不是像发送给的
那样保存它,但我觉得这会导致表格在不久的将来变得巨大,如果我为每个接收者创建一个单独的行,requests
ID
字段与用户通过应用程序发送的请求数无关,因为对于同一请求的每个接收者,它将增加不止一次,而在同一个或另一个用户发送新请求之前,它应该保持不变。如果我做错了什么,有人能给我解释一下原因吗?谢谢

您可以有一个使用请求表中的id的表,还有另一个字段,它是发送给的用户

表:请求用户

列:request_id(这是您的外键) 用户id(也将是外键)


您的主键将是两个字段。

停止。请参阅规范化。@草莓是的,我试图将所有内容都保存在同一个表中,但我想我必须为sent_to字段单独创建另一个表,并一直使用联接进行查询,对吗?是的,类似于此。@草莓非常感谢!你太好了=)我想这是唯一的方法,我不想这样做,因为在应用程序激活的几个月内,表可能会变得非常大。但我想这是最好的办法。非常感谢,我想你在技术上救了我的命。hahaTable大小不是问题,它是一个小表,即使是数百万行也不会造成大问题。好处是设计更好,稍后您的理智会感谢您:)我只是担心稍后的性能问题,如果这不是问题,那么我现在就跳回去做更改。非常感谢你。顺便说一句,我相信你的个人资料上有一个打字错误,上面写着“找到艺术学位”,希望我能帮上忙。呵呵!谢谢你,我们都会犯错误:)是的,先生!我是一个自学成才的程序员,我确实知道犯错误的一切,尤其是打字错误,哈哈。祝您愉快,先生。