33.数据建模实战之关系型数据库与document类型数据模型对比

关系型数据库的数据模型

es的document数据模型

 

public class Department {
    private Integer deptId;
    private String name;
    private String desc;
    private List<Employee> employees;
}

 

public class Employee {
    private Integer empId;
    private String name;
    private Integer age;
    private String gender;
    private Department dept;
}

关系型数据库中

department表

dept_id
name
desc

employee表

emp_id
name
age
gender
dept_id

三范式 --> 将每个数据实体拆分为一个独立的数据表,同时使用主外键关联关系将多个数据表关联起来 --> 确保没有任何冗余的数据

一份数据,只会放在一个数据表中 --> dept name,部门名称,就只会放在department表中,不会在employee表中也放一个dept name,如果说你要查看某个员工的部门名称,那么必须通过员工表中的外键,dept_id,找到在部门表中对应的记录,然后找到部门名称

es文档数据模型

 

{
    "deptId": "1",
    "name": "研发部门",
    "desc": "负责公司的所有研发项目",
    "employees": [
        {
            "empId": "1",
            "name": "张三",
            "age": 28,
            "gender": "男"
        },
        {
            "empId": "2",
            "name": "王兰",
            "age": 25,
            "gender": "女"
        },
        {
            "empId": "3",
            "name": "李四",
            "age": 34,
            "gender": "男"
        }
    ]
}

es,更加类似于面向对象的数据模型,将所有由关联关系的数据,放在一个doc json类型数据中,整个数据的关系,还有完整的数据,都放在了一起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值