我正在構建一個類似於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