1. 程式人生 > >59.關系型與document類型數據模型對比

59.關系型與document類型數據模型對比

存儲 span 一個 對象 des 一起 _id name 外鍵關聯

現假設有如下兩個類:

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類型數據體現,整個數據的關系以及完整的數據,都放在了一起。

59.關系型與document類型數據模型對比