1.數據庫範式(規則):html
函數依賴:x惟一肯定y 則 y 函數依賴於 x數據庫
徹底函數依賴:x中不能再有子集 可以惟一肯定 y ;若是 x 中有子集可以惟一肯定 y,則 y 部分函數依賴於 xapp
一.第一範式:確保每列都不可拆分,即保持原子性函數
二.第二範式:確保表中的每列都和主鍵相關,而不能只與主鍵的某一部分相關(聯合主鍵)。也就是說在一個數據庫表中,一個表中只能保存一種數據,不能夠把多種數據保存在同一張數據庫表中。spa
例子:訂單與商品信息,兩個實體表,一個關係表;詳細參考連接文檔設計
三.第三範式:確保每列都和主鍵列直接相關,而不是間接相關htm
四.BCNF:在關係模式中每個決定因素都包含候選鍵,也就是說,只要屬性A或屬性組A可以決定任何一個屬性B,那麼A的子集中必須有候選鍵。對象
3NF和BCNF是在函數依賴的條件下對模式分解所能達到的最大程度。一個模式中的關係模式若是都屬於BCNF,那麼在函數依賴範圍內,它已經實現了完全的分離,已消除了插入和刪除的異常。3NF的「不完全」性表如今可能存在主屬性對鍵的部分依賴和傳遞依賴。因此關係模式的設計要符合BCNF的設計。blog
參考:文檔
三個範式:http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html
BCNF:http://www.cnblogs.com/ybwang/archive/2010/06/04/1751279.html
2.從SQL查詢結果到領域模型實體
3.ResultMap標籤屬性說明
id:resultMap標籤的標識
type:返回值的全限定類名,或類型別名。
autoMapping:值範圍(默認爲true)。設置是否啓動自動映射功能,自動映射功能就是自動查找與字段名小寫同名的屬性名,並調用setter方法。設置爲false後,則須要在`resultMap`內明確註明映射關係纔會調用對應的setter方法。
4.實體類必定要有無參數的構造方法
5.子元素說明:
id元素:用於設置主鍵字段與領域模型屬性的映射關係
result元素:用於設置普通字段與領域模型屬性的映射關係
6.constructor元素:指定使用指定參數列表的構造函數來實例化領域模型。注意:其子元素順序必須與參數列表順序對應
idArg子元素:標記該入參爲主鍵
arg子元素:標記該入參爲普通字段(主鍵使用該子元素設置也是能夠的)
7.一對一關係,一對多關係 以及動態SQL
在採用嵌套結果的方式查詢一對1、一對多關係時,必需要經過resultMap下的id或result標籤來顯式設置屬性/字段映射關係,不然在查詢多條記錄時會僅僅返回最後一條記錄的狀況。
參考:
http://www.cnblogs.com/fsjohnhuang/p/4014819.html
http://www.soso.io/article/65324.html
8.動態映射關係信息 discriminator
參考:
http://www.cnblogs.com/fsjohnhuang/p/4076592.html
http://www.cnblogs.com/rollenholt/p/3365866.html