2016-11-20 71 views
0

我正在使用ORM構建一個使用MVC模式的應用程序,並且我正在努力理解在模型和遷移(數據庫)中設置默認值和約束的「最佳實踐」。應該在模型和數據庫中設置唯一的約束嗎?

建議您在模型和數據庫中設置驗證還是僅在其中一個設置驗證?如果後者是哪一個?

回答

0

當在數據庫中設置約束時,無論數據庫是通過您正在構建的應用程序還是通過其他交互式或編程接口訪問,它們都會被強制執行。數據庫中設置的約束因此爲您提供更強大的數據完整性保護。

+0

這很有道理。這是一個好主意。但是,除了這個之外,爲什麼還要在模型中增加約束呢?爲什麼不把它保持乾燥而不重複自己呢? – Andreas

+0

如果在數據庫中設置了約束,我不會打擾在ORM中應用約束。但是,我幾乎從不使用ORM,因爲DBMS功能和SQL功能更強大,並且與向數據庫連接器添加的一些自定義方法一樣易於使用。 –

+0

但是在模型中也沒有添加約束的缺點? – Andreas