我正在开发一个房地产网站,需要制作通知邮件:当在网站上插入新特性时,在该特定国家和/或地区和/或城市和/或特定特性订阅通知的人操作(租赁、出售)将收到电子邮件通知。一个人可以订阅不同的地区、城市等,而不仅仅是一个。不过,一个人每周只会收到一份通知,比如是否有新特性适合他。我正在考虑如何更好地为订阅者创建一个 mysql 表,以便轻松检索它们。表格如下:
create table subscribers(
user_email varchar(255),
area_id int(4));
是一个坏主意,因为如果有 100,000 个(展望 future )订阅者,每个订阅者订阅 10 个区域,那么表中将有 1,000,000 行。因此,我正在寻找有效的解决方案来完成此类任务。
如果您有其他建议,我很想听听。
提前致谢!
最佳答案
您应该使用交叉引用(多对多)表。这将使数据更加规范化:
CREATE TABLE `areas` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL
PRIMARY KEY (`id`)
)
CREATE TABLE `subscribers` (
`id` int(10) unsigned NOT NULL auto_increment,
`email` varchar(255) NOT NULL
PRIMARY KEY (`id`)
)
-- cross ref table
CREATE TABLE `areas_subscribers` (
`area_id` int(10) unsigned NOT NULL,
`subscriber_id` int(10) unsigned NOT NULL,
UNIQUE KEY (`area_id`,`subscriber_id`)
)
一百万行不是问题。特别是有交叉引用表。
关于php - php/mysql 邮件程序帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2978076/