首先,我想清除情况。
有批量邮件系统有列表(电子邮件组),每个列表都有多个联系人(电子邮件)。联系人具有某些状态,例如正常,退订,退回等。
我正在考虑设计这样的东西。
Table Contacts
-----------------------------------------
id email group_id contacts status
-----------------------------------------
状态将存储上述的电子邮件ID状态。
但是一个列表可以包含成千上万的电子邮件,因此,如果客户端增加,则数据检索将导致性能问题
所以我得到了两种解决方案
为不同的联系状态创建不同的表格,例如
一个用于普通添加联系人的表,另一个用于未订阅联系人的表。对于其他州,依此类推
所以我的问题是,哪种方法可以更好地解决上述情况。请指导我。
我将表中的多对多关系和联系人列表绑定在一起只是为了描述问题。提前致谢。
更新
查询上表信息
用于检索正常联系人
从其中group_id ='[group_id]'和状态= 1的联系人中选择*
对于未订阅的联系人
从group_id = [group_id]'和status = 2的联系人中选择*,依此类推。
对于您的评论把一个指数group_id
和status
IE
create index my_index on contacts(group_id, status)
这将解决任何性能问题,因为数据库可以在不锁定表的情况下找到列表。
最好不要在扫描列表(例如通过电子邮件发送)时执行任何昂贵的操作
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句