我正在构建一个类似于aweber的列表管理系统(用于电话号码,而不是电子邮件)。动态创建MySQL表可以吗?
有一些活动。电话号码与每个广告系列相关联。用户可以向其发送一个号码,然后他们将被订阅。
我正在构建“创建新广告系列”页面。
我目前的策略是为每个广告系列(campaign_1,campaign_2,...,campaign_n)创建一个单独的表格并将订阅者数据存储在其中。
也可以创建一个表并向其添加
campaign_id
列。
每个广告系列应该有5k到25k个用户。
哪一个更好? #1或#2?
选项2;它将使查询多个广告系列变得更容易,维护更容易(无需创建表格,每次生成CRUD语句),并且实际上,您正在预先优化。这不是那么多的数据!如果用户订阅多个广告系列,它也会让您更轻松。 – dash
绝对是第二个。选择一个可能会导致数万年后使用万用表 - 这将是完全无法维护的,并且可能会看到您的数据库架构的心脏病发作(我肯定会这样做)...另外,这是反对正常化,考虑到活动可能包含相同的电话号码 - 因此是数据。 – shadyyx
实际上,你的设计可能看起来像这样:''Campaign','User','UserCampaign','User'和'UserCampaign'是大表,但'UserCampaign'实际上只是一个链接表('UserId','CampaignId'),也许还有一个链接到'CampaignPreferences'。这不是很多数据。 – dash