本文节选自电子书《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>