Model 應該要和數據庫表結構一致么
Model 應該要和數據庫表結構一致么?
慕田峪4524236
2019-02-07 15:07:19
TA貢獻1775條經驗 獲得超8個贊
Model是到概念模型的映射,而不是到表的映射。Model是和模型一致,而不是和數據表一致。
模型可以存在一張表,也可以存進多張表。如果是一張表,那么碰巧Model可以和一張數據表一致,如果User這個概念正好是一張表,那么UserModel映射到這張表是自然的,如果User這個概念有多張表來實現,那么UserModel應該映射到是一個JOIN的結果,這并不矛盾,概念是一致的,只不過存儲細節不同而已。數據分多少張表存儲是底層設計問題,Model如何抽象是上層概念,抽象不應受限于底層存儲,而應該隱藏底層存儲的細節,這是用Model的目的。
明白了這一點,你的選擇就多了,無論是user表做冗余,一次查詢,還是分表做JOIN,這些只是具體實現,是Model自己內部要處理的問題,都不應該影響你Model本身的接口設計,所以UserModel始終應該包含這些額外數據的成員,只不過具體使用的時候,你可以優化這個它的實現,允許使用它的代碼按需加載額外數據,這又是一個實現細節,不改變概念上這些額外數據的存在。
舉報