雜糅-數據庫級聯關係



實際上無論是多對一,一對多,多對多,還有一對一。最底層的實現的本質就是外鍵關係,外鍵怎麼處置,放誰中。

一對一基本是單向的,不需要雙向,雙向的話爲什麼不放在一張表裏呢。

一對多多對一關鍵還是多的一方拿到一的外鍵。不要雙向設置,級聯關係太亂。

多對多,有一種多對多的實現方式是在多的兩端設置,實際上最後還是形成了第三張表,不如通過我適應的實現方式,一對多的形式組合。具體是一對多還是一對一根據業務的需要來。

例如一條狀態的評論表。表一是用戶表。表二是狀態表。評論表示表三,在業務邏輯上,狀態需要去獲取所有的這條狀態的評論,所以一對多的關係。用戶不需要獲取所有的評論那麼就一對一就好了。


再舉個例子,


模板範例:


一對一單向:

@Entity

@Table(name="tb_account")

public class Account {

@OneToOne(mappedBy ="account")

privateAccountDetailaccountDetail;

}

@Entity

@Table(name="tb_accountDetail")

public classAccountDetail {

@OneToOne

@JoinColumn(name="accountId")

privateAccountaccount;

}



一對多單向:多方添加外鍵字段

@Entity

@Table(name = "t_users")

public class User {

@OneToMany

@JoinColumn(name="userId")

private ListuserLoginInfos;

}

@Entity

public class UserLoginInfo {

@ManyToOne

@JoinColumn(name="userId")

private User user;}


多對多處理成兩個多對一


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章