多个消息接收者(数据库字段)

我想让用户互相发送消息, 现在,这是当前模式
CREATE TABLE IF NOT EXISTS `inbox` (
  `id` int(11) NOT NULL auto_increment,
  `id_usuario` int(11) NOT NULL,
  `id_to` int(11) NOT NULL,
  `mensaje` varchar(250) collate utf8_spanish_ci NOT NULL,
  `texto` text collate utf8_spanish_ci NOT NULL,
  `fecha` date NOT NULL,
  `visto` int(1) NOT NULL,
  `adjunto` int(1) NOT NULL,
  `item` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=1 ;
对于这个问题,我认为这只是相关的: id_usuario-用户(发送者)的唯一ID id_to-用户的唯一ID(接收者) id-唯一消息ID 我很好奇, 如果我将\'id_to \'类型从整数(仅一个ID)更改为varchar,以便: id_usuario-与用户分开的多个唯一ID的逗号(接收者) 并存储多个接收者,例如(多个ID):\'333、444、555 \' 我将能够: 向每个收信人显示消息? 仍然搞清楚查询,它会是这样的:
\"select * from inbox where sesionid IN (idto)\"
?? 显示发件人每封邮件的消息? 仍在查询中,是否会是类似于
\"select id_to from inbox where id = \'254\'\"
然后被\',\'炸开 要么, 我应该改变计划吗?     
已邀请:
不知道项目的大小,通常不建议在一个列中存储多个ID,这是因为每个ID过滤所需的处理能力。 我建议创建一个名为\“ MessageReceivers \”的表或类似的表。它将包含messageID和接收消息的人的用户ID。您将为每个收件人创建一行。 然后使用索引,您可以通过简单的连接快速获取该用户的所有消息。     
您可以通过创建另一个表来存储收件人来更好地做到这一点,其中的每一行都列出了邮件ID和收件人ID。同一邮件ID的多行将代表同一邮件的多个收件人。 通过这种结构,您可以使用
JOIN
语句对收件人运行查询。     

要回复问题请先登录注册