我正在建立一个为用户提供新闻通讯系统的服务。
我的问题是,如何在数据库中组织它?用户打开帐户 - >数据库上有一个新闻行 - >电子邮件将如何存储?我想到了类似的东西:
user@mail.com,HASHCODE|user2@anothermail.com,HASHCODE|someone@mail.com,HASHCODE ..
(将存储在用户行的一个字段中,HASHCODE用于删除电子邮件)
然后使用explode()
在数组中对其进行排序。但我不知道这是订购邮件的最佳方式..你怎么看?
答案 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。我不使用数据库,但编码非常灵活和安全。