天天看點

Spring Data 資料庫模組化最佳實踐

本文節選自電子書《Netkiller Architect 手劄》

出處:http://www.netkiller.cn

作者:netkiller , QQ:13721218, 訂閱号:netkiller-ebook

目錄

<dl></dl>

ORM的出現解決了程式猿學習資料庫學曆成本,也加快了開發的速度。程式猿無需再學習資料庫定義語言DDL以及資料庫用戶端,也無需關注建表這些繁瑣的工作,同時也降低了資料庫結構變更管理中與DBA頻繁溝通的成本。

在過去的兩年中我們采用 Spring Data JPA 定義資料庫,通路資料庫,積累了很多經驗,最終我們發現使用 Spring Data 實體定義完全可以代替 DBA 的模組化工作。

這是一個通用分類表,常見的父子關系加上path路徑

期望結果

我們希望為 name 和 path 字段增加普通索引

建立由多個字段組成的複合索引,如: "member_id", "articleId"

如下圖,我們将實作 categroy 和 article 的一對多關系

首先定義分類實體類

定義文章實體類

希望結果

現在我們已經将 categroy 與 article 兩張表一對多關系建立起來。

使用者與角色就是一個多對多的關系,多對多是需要中間表做關聯的。是以需要一個 user_has_role 表。

建立 User 表

建立 Role 表

最終産生資料庫表如下

orphanRemoval = true 可以實作資料級聯删除

<a href="https://yq.aliyun.com/articles/292290" target="_blank">找到并留住最佳員工</a>

<a href="https://yq.aliyun.com/articles/281143" target="_blank">讓程式猿和攻城獅更敬業</a>

<a href="https://yq.aliyun.com/articles/292610?spm=5176.8091938.0.0.jGbvd1" target="_blank">攻城獅的自我營銷</a>

<a href="https://yq.aliyun.com/articles/293697" target="_blank">人力資源管理·教育訓練與開發</a>