新闻通讯服务的数据库架构(用php)

时间:2011-06-19 19:21:57

标签: php mysql sql database database-design

我正在建立一个为用户提供新闻通讯系统的服务。

我的问题是,如何在数据库中组织它?用户打开帐户 - >数据库上有一个新闻行 - >电子邮件将如何存储?我想到了类似的东西:

user@mail.com,HASHCODE|user2@anothermail.com,HASHCODE|someone@mail.com,HASHCODE ..

(将存储在用户行的一个字段中,HASHCODE用于删除电子邮件)

然后使用explode()在数组中对其进行排序。但我不知道这是订购邮件的最佳方式..你怎么看?

4 个答案:

答案 0 :(得分:1)

为什么不将电子邮件存储在单独的UserEmails表中并与用户表建立关系。对于起点,您可以查看this链接 Useremail表将有三个字段UseremailID email UserID

UseremailID    email         UserID
1           sss@ss.com        1
2           asasf@ssf.com     1

我建议你阅读一些关系数据库,以便了解表和关系

答案 1 :(得分:1)

您应该考虑使用这样的表结构:

Table 'subscription'
id int(20) PK auto_increment
email varchar(100) UNIQUE index

这将导致您必须使用ID和电子邮件地址向表中插入新行(这两行都是唯一的,因此您不会获得双重记录)

答案 2 :(得分:1)

我会创建一个表来存储新闻稿,另一个用于创建用户和新闻稿之间的关系,这样您就可以更好地控制自己的信息。

三个表:User,User_Newsletter,Newsletter

User_Newsletter只会存储user_id和newsletter_id

答案 3 :(得分:0)

数据库服务似乎并不那么灵活(即使它们被引入)。普通的UNIX文件系统层次结构和纯文本文件是存储信息的最佳方式。您不知道数据库的内部结构。但是你知道你的文件系统的一切,包括文件权限和加密

例如,从我这里获取免费电子邮件通讯服务Croud Mail。我不使用数据库,但编码非常灵活和安全。