【问题标题】:php email system using MYSQL db使用 MYSQL 数据库的 php 电子邮件系统
【发布时间】:2011-07-30 09:56:14
【问题描述】:

我一直在考虑在我的网站上实现一个 PHP 消息传递系统。想知道我以下建议的利弊。

我注意到有很多网站,例如spareroom.co.uk、easyroommate.com、oasis.com、facebook 等,您可以登录并向用户/个人资料发送消息。因此,要让用户发送消息,他们必须登录到我的站点,然后将 msg 输入到 textarea 中,我将其存储在 MYSQL db 表中。然后收件人用户会收到一封真实的电子邮件到 hotmail/gmail,通知他去我的网站并登录并检查他们的消息,然后他们只能在我的网站上回复/发送。

我的消息表如下:

sender email address (varchar)(50)
sender advert id (varchar)(7)
sender message (text)
recipient email address (varchar)(50)
recipient advert id (varchar)(7)

因此,发件人/收件人发送的每条消息都是一条新记录

我的数据库中已经有 3 个其他表(这是第 4 个)。我会在 7 天后自动删除消息。希望这会让用户回到我的网站并使用它。我知道它会使用带宽,但它会确保我的网站正在被使用并且用户正在接收电子邮件,因为我的电子邮件服务器似乎进入了他们真正的电子邮件提供商的垃圾邮件/垃圾邮箱。

问题:

1) 拥有一个包含大量记录但字段很少的数据库是个好主意吗?

2)这个建议有什么优点/缺点吗?

3) 使用 PHP 的网站是否以类似的方式实现其消息系统?

干杯, daza166

【问题讨论】:

  • 我在这里能找到的唯一问题是“拥有一个包含大量记录但字段很少的数据库是个好主意吗?”这是你的问题吗?
  • 嗯?顺便修改了我的问题
  • 你描述了一个相当典型的方法,我看不出它有什么特别的问题。

标签: php mysql messaging


【解决方案1】:

当我建立一个数据库时,我从不关心特定表的字段数。有时需要只存储某物被锁定的信息,所以我使用只有一个字段的表。有时我需要知道是否已经创建了具有特定属性的项目,因此我只将属性存储在单独的表中,并查找所有条目以查找此属性是否已在使用中。

从性能或最佳实践的角度来看:无论如何,您的方法都是正确的。

【讨论】:

  • 所以你说这应该是很好的方法。一般来说,我应该针对 db 中的较少字段,因此此后的记录数量真的不应该成为问题吗?捕获的数据将始终是最小的,而不是需要很长时间才能加载的大块
  • 您的 db 表可能会托管 1.000.000 条记录,但仍然绝对没问题。
  • 你的表的字段数不相关。
  • 但是,您可能会有一个单独的表格供您的用户使用,其中包含电子邮件地址。所以你的消息表只需要承载:from_user_id、to_user_id、headline、message、date(7天后删除)。我能想到很多改进。但这将是另一个问题。
  • 使用连接的链接是优于数据重复的首选方法。
猜你喜欢
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 2011-10-07
  • 2013-11-29
  • 2015-07-18
  • 1970-01-01
  • 2020-11-27
相关资源
最近更新 更多