Database design 电子邮件阻止列表问题

Database design 电子邮件阻止列表问题,database-design,blocking,Database Design,Blocking,我正在验证三件事的电子邮件阻止列表: 1) 阻止电子邮件,如:abc@test.com 2) 域名:test.com 3) 子域,如:.com 因此,当用户提交电子邮件时,可以出于以下三种原因中的任何一种从阻止列表中拒绝该电子邮件。问题是,我是否需要3个单独的表格,它将如何工作?系统接收电子邮件在阻止列表1、列表2和列表3中运行,或者是否有方法编写一个函数或某个可以同时执行所有3次运行的东西 这最好存储在RDMS或NoSQL实现中吗?域名和电子邮件阻止列表列出了大约500000条条目。随着我将垃

我正在验证三件事的电子邮件阻止列表:
1) 阻止电子邮件,如:abc@test.com
2) 域名:test.com
3) 子域,如:.com

因此,当用户提交电子邮件时,可以出于以下三种原因中的任何一种从阻止列表中拒绝该电子邮件。问题是,我是否需要3个单独的表格,它将如何工作?系统接收电子邮件在阻止列表1、列表2和列表3中运行,或者是否有方法编写一个函数或某个可以同时执行所有3次运行的东西

这最好存储在RDMS或NoSQL实现中吗?域名和电子邮件阻止列表列出了大约500000条条目。随着我将垃圾邮件添加到列表中,电子邮件列表将变得更长。Sumdomain列表大约为10-15,具体取决于一些自定义逻辑


注意:此列表甚至可用于网站上的电子邮件过滤器,以拒绝垃圾邮件。

使用正则表达式或类似的基本语法:

SELECT * FROM tbl_banned WHERE ban_pattern LIKE 'someone@domain.ext'
在禁止使用的同时:

abc@test.com
*@test.com
*.com
在MySQL中,*是%

编辑


对不起,我错过了问题的第二部分。Imho,将其存储在RDBMS impl中。足够远了,我看没有问题。

所以我需要3个队列,就像我需要所有3个案例一样?这取决于您是想要有3个队列还是将所有内容存储在一个表中。我会使用一个唯一的队列,如果你想知道它是什么类型的禁令,你也可以使用一个字段的类型:电子邮件,电子邮件域或域。