為電子郵件活動創建表格的最佳方法是什麼?
我有
email_sent
欄位表:
- ID
- 使用者身份
- 模板名稱
- sent_at
- 打開的點擊次數
現在我需要保存為每封電子郵件發送的數據。我有幾個具有不同數據的廣告系列。例如,推薦給英語老師打電話的活動,如果使用者在到期日之前給老師打電話,服務將退還 10% 的費用。因此,對於每封電子郵件,我都需要保存teacher_id 和過期日期。我有幾種方法。
首先創建
call_discount
包含欄位的表:email_sent_id、teacher_id、expire。其次創建
email_sent_data
帶有欄位的表:id、fieldname、value 和email_sent_to_data
帶有欄位的表:email_sent_data_id、email_sent_data。但是我將擁有大量數據,並且很難做出正確的索引。第三個用欄位創建表
email_sent_data
:id,teacher_id,expire。將列添加email_sent_data_id
到表中email_sent
。如果我有新的campaing,我會在email_sent_data
.我有postgresql 9.1。所以我不能使用 JSON。
沒錯,Postgres 9.1沒有
json
/jsonb
數據類型。但是有一個額外的模組hstore
提供同名的數據類型。
hstore
自 Postgres 8.3 以來一直在核心版本中(它非常成熟)。對於僅文本數據並且沒有嵌套,它與 一樣好json
,如果不是更好的話。(jsonb
介紹了一些新的糖果。)如果您只有幾十個稀疏填充的列,我也會考慮寬行,其中許多列只是 NULL。NULL 儲存在 Postgres 中非常便宜。
您還可以使用 EAV(實體屬性值)設計。討論陷阱的相關答案:
但請考慮先升級到目前版本的 Postgres。Postgres 9.1 於 2016 年 9 月達到 EOL。