时事通讯软件数据库解决方案-MySQL和PHP
我最近构建了一个新闻稿应用程序。它允许用户订阅一些不同类别的时事通讯。我设计了一些如下的表格 类别表:id cname说明 订户表:id sname类别\u id 通讯表:id名称内容 类别\通讯表:id通讯\ id类别\ id 经理创建时事通讯时,将选择某些类别。这是通过category_通讯表完成的,类似于 类别\通讯表:id通讯\ id类别\ id 直到现在一切都很顺利。但问题是,如何将时事通讯发送给选定类别的订户?我有一个解决方案,但我不知道这是否可行 我设计了另一个名为newsletter_queue的表,当manager创建一个newsletter并选择一些类别时,例如cakephp类别,然后系统将选择cakephp类别中的所有订阅者,并将电子邮件字段、订阅者id字段插入到newsletter_queue表中,这样系统就有足够的能力处理电子邮件发送过程,即使经理在发送过程中暂停电子邮件 那么,有没有人在时事通讯核心数据库方面有一些经验?谈谈吧。提前谢谢时事通讯软件数据库解决方案-MySQL和PHP,php,mysql,database-design,Php,Mysql,Database Design,我最近构建了一个新闻稿应用程序。它允许用户订阅一些不同类别的时事通讯。我设计了一些如下的表格 类别表:id cname说明 订户表:id sname类别\u id 通讯表:id名称内容 类别\通讯表:id通讯\ id类别\ id 经理创建时事通讯时,将选择某些类别。这是通过category_通讯表完成的,类似于 类别\通讯表:id通讯\ id类别\ id 直到现在一切都很顺利。但问题是,如何将时事通讯发送给选定类别的订户?我有一个解决方案,但我不知道这是否可行 我设计了另一个名为newslett
Category Table:
CategoryId
Name
Description...
Subscriber Table:
SubscriberId
Name
Subscription Table:
SubscriberId
CategoryId
Newsletter Table:
NewsletterId
Name
Content...
CategoryNewsletter Table:
NewsletterId
CategoryId
NewsletterQueue Table:
SubscriberId
NewsletterId
Sent...
您不需要category_新闻稿中的附加id列。您可以创建一个包含NewsletterId和CategoryId的主键,这样就足够了
订阅服务器表也应分为两个表。您应该有一个订阅服务器表,该表具有订阅服务器的id和名称。第二个订阅表是订阅服务器的id和类别的id,这样一个用户就可以按照您所述订阅多个类别
在选择向谁发送时事通讯时,您还需要确保获得不同的电子邮件地址,因为用户似乎可以注册多个类别,并且时事通讯可以分配给多个类别
如果用户关注类别a和B,并且经理为类别a和B创建新闻稿,如果您只选择订阅所选类别的所有用户,则它将返回用户两次,每个用户关注的类别返回一次
Insert into NewsletterQueue (SubscriberId, NewsletterId)
Select Distinct s.SubscriberId, cn.NewsletterId
From SubscriptionTable s
INNER JOIN CategoryNewsletter cn ON s.CategoryId = cn.CategoryId
WHERE cn.NewsletterId = [x]
您需要另一个用于消息的表,并且您应该能够很好地处理它。新闻稿队列应至少具有id |订户id |消息id |添加的|时间戳|状态。