59.关系型与document类型数据模型对比

现假设有如下两个类:

class Department(object):

def __init__(self, dept_id, name, desc, employees=[]):

self.dept_id = dept_id

self.name = name

self.desc = desc

self.employees = employees

class Employee(object):

def __init__(self, emp_id, name, age, gender, dept_id):

self.emp_id = emp_id

self.name = name

self.age = age

self.gender = gender

self.dept_id = dept_id

这两个类的数据在关系型数据库中存储方式:新建两张表

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类型数据体现,整个数据的关系以及完整的数据,都放在了一起。

原文地址:https://www.cnblogs.com/liuqianli/p/8542111.html

时间: 2024-10-16 00:43:37

59.关系型与document类型数据模型对比的相关文章

关系型数据库与非关系型数据库的简介、对比、说明

关系型数据库与非关系型数据库的简介.对比和说明!!! 分类专栏:数据库 数据库MySQL的系列知识 关系型数据库: Oracle SQLServer Sybase Informix Access DB2 mysql vfp Ingers FoxPro 非关系型数据库:关系型数据库与非关系型数据库的对比 MongoDB Cassandra CouchDB Hypertable Redis Riak Neo4j Hadoop HBase Couchbase MemcacheDB REVENDB Vo

Document类型

1.文档的子节点 Document类型可以表示HTML页面或者其他基于XML的文档.不过,最常见的应用还是作为HTMLDocument实例的document对象.通过这个文档对象,不仅可以取得与页面有关的信息,而且还能操作页面的外观及其底层结构. 虽然DOM标准规定Document节点的子节点可以是DocumentType.Element.ProcessingInstruction或Comment,但还有两个内置的访问其子节点的快捷方式.第一个就是documentElement属性,该属性始终指

从原型链看DOM--Document类型

JavaScript通过Document类型表示文档,原型链的继承关系为:document.__proto__->HTMLDocument.prototype->Document.prototype->Node.prototype->EventTarget.prototype Document节点具有下列特征:以下属性均为Node.prototype上的 nodeType值为9 nodeName值为"#document" nodeValue值为null pare

javascript的window.onload()方法和jQuery的$(document).ready()的对比

jQuery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 ,后面会覆盖前面的. $

【EBS WORKFLOW】工作流使用document类型的消息属性

工作流使用document类型的消息属性 工作流的消息内容,最简单的是TEXT文本,或者静态的HTML文本,但能够满足的情况很有限. 很多时候工作流要显示的是一个列表,不确定有多少行,所以不能提前设置,也不可能枚举所有变量. 这时候需要使用动态的消息内容,也就是本文讲述的document类型的消息属性. 开发步骤 定义一个用于动态获取消息内容的存储过程 Oracle Workflow Developer’s Guide 6-12 PROCEDURE get_request_msg(documen

Document类型[第10章-文档对象模型DOM 笔记2]

Document 类型 JavaScript 通过 Document 类型表示文档.在浏览器中, document 对象是 HTMLDocument (继承自 Document 类型)的一个实例,表示整个 HTML 页面.而且, document 对象是 window 对象的一个属性,因此可以将其作为全局对象来访问. Document 类型可以表示 HTML 页面或者其他基于 XML 的文档.不过,最常见的应用还是作为HTMLDocument 实例的 document 对象.通过这个文档对象,不

JavaScript DOM(二)之Document类型

Document类型简介 javaScript通过Document类型表示文档:因此我们称document 为文挡对象,在浏览器中, document对象是HTMLDocument的一个实例,表示整个HTML页面,而且,document对象是window对象的一个属性,因为可以作为一个全局对象来访问: Document类型特征 1:nodeType的值为9; 2:nodeName的值为"#document"; 3:nodeValue的值为null; 4:parentNode的值为nul

第10章 文档对象模型DOM 10.2 Document类型

Document 类型 JavaScript 通过 Document 类型表示文档.在浏览器中, document 对象是 HTMLDocument (继承自 Document 类型)的一个实例,表示整个 HTML 页面.而且, document 对象是 window 对象的一个属性,因此可以将其作为全局对象来访问. Document 类型可以表示 HTML 页面或者其他基于 XML 的文档.不过,最常见的应用还是作为HTMLDocument 实例的 document 对象.通过这个文档对象,不

关系型数据库与NoSQL的对比

SQL(结构化的查询语言)数据库是过去四十年间存储数据的主要方式.20世纪90年代末随着Web应用和MySQL.PostgreSQL和SQLite等开源数据库的兴起,用户爆炸式的增长. NoSQL数据库自从20世纪60年代就已经存在了,直到MongoDB, CouchDB, Redis 和 Apache Cassandra等数据库的流行才获取了更多的关注. 你可以很容易地找到许多关于如何使用一款特定的SQL或NoSQL的教程,但是很少有讨论你为什么优先的使用一款而不适用另一款.我希望我能够填补这