這種情況:何時沒有規範化的數據庫?
比方說,我有一個狗模型和一個疫苗接種模型(所以,一張表存儲行的狗和一張表存儲給狗的疫苗行)。
所以,一隻狗has_many
接種疫苗和疫苗belongs_to
一隻狗。
我想快速回答這個問題:「狗A最後一次接種疫苗的時間是?有兩種方法來存儲此數據:
1)規範化的數據庫方式:讓Vaccine表存儲所有內容。要回答這個問題,請在數據庫中搜索給狗A的所有接種疫苗,然後返回最近的疫苗。
2)不規範化數據庫的方式:有一個名爲「last_vaccination」在狗場,而每一個疫苗是給犬A.時間
#1的優點是保持這一領域的:你得到數據庫規範化並且不必擔心維護準確的數據。
#2的優點是:性能 - 您無需每次都搜索疫苗數據庫。
什麼是正確的做法?
這顯然是一個非常簡單的例子,規範化的原因是每個表中的主鍵具有特定的數據。我會說你想盡可能規範化你的表格,否則你最終會得到一張存儲所有數據的表格。 –