我有一個在線表格,用戶必須提交幾個選擇題答案,並且可以選擇插入他們的電子郵件地址(保持最新的結果)。但是,只有很少人真正做到這一點。在MySQL中最有效的方式來存儲幾乎總是NULL的VARCHAR?
所以目前我有一張3列的表格:submission_id INT
,encoded_answers varchar(20)
和email VARCHAR(50)
。但是,考慮到95%的電子郵件條目是NULL,這是非常浪費的。
當然我可以使用兩個表格:一個是submission_id
和encoded_answers
,另一個是submission_id
和email
。但是,在1個表中還有解決方案嗎?對稀疏類型的列進行排序,如果該字段不是NULL,那隻會佔用空間?
爲什麼迴避正常化?多表方法是正確的。 – Yahel
電子郵件的長度爲50對我來說似乎相當危險...... – Sebas
很奇怪,您沒有用戶類型的記錄來表示其中包含有問題的電子郵件地址。 – tadman