문서 형 데이터베이스 디자인 모드 - 트 리 데 이 터 를 어떻게 저장 합 니까?

2584 단어
데이터베이스 에 트 리 구조의 데 이 터 를 저장 하 는 것 은 매우 보편적 인 수요 이다. 예 를 들 어 포럼 시스템 의 블록 관계 등 이다.전통 적 인 관계 형 데이터 베이스 에서 이미 각종 해결 방안 이 생 겼 다.
이 글 은 트 리 구조 데 이 터 를 저장 하 는 것 을 수요 로 하여 관계 형 데이터 베이스 와 문서 형 데이터 베 이 스 를 이용 하여 저장 하 는 몇 가지 디자인 모델 을 묘사 했다.
A. 관계 형 데이터베이스 디자인 모델 1
id
name
parent_id
1
A
NULL
2
B
1
3
C
1
4
D
2
위의 그림 은 전통 적 인 디자인 방법 중 하 나 를 나타 낸다. 바로 나무 구조의 모든 결점 을 관계 형 데이터 베이스 중의 한 줄 로 저장 하고 모든 결점 은 아버지의 결점 의 지침 을 저장 하 는 것 이다.
  • 장점: 구조 가 간단 하고 이해 하기 쉬 우 며 삽입 수정 작업 이 모두 간단 하 다
  • 단점: 어떤 결점 의 모든 자 결점 을 얻 으 려 면 징 그 러 운 일이 다
  • B. 관계 형 데이터베이스 디자인 모델 2
    id
    name
    parent_id
    left
    right
    1
    A
    NULL
    1
    8
    2
    B
    1
    2
    5
    3
    C
    1
    6
    7
    4
    D
    2
    3
    4
    위의 그림 은 패턴 1 을 바탕 으로 두 열, left 와 right 가 더 많아 졌 으 며, btree 의 좌우 분기 에 해당 하 며, 각각 좌우 분기 결점 의 최대 치 와 최소 치 를 저장 하 였 다.
  • 장점: 결점 의 자 결점 을 찾 는 것 은 쉬 우 므 로 하나의 범위 조회 만 하면 된다 (예 를 들 어 B 노드 의 자 결점 은 id > = 2 & & id < = 5)
  • 단점: 나무 구조 가 이 안에 존재 하기 때문에 이미 존재 하 는 결점 을 추가 하거나 수정 하면 연쇄 반응 이 발생 할 수 있 고 조작 이 너무 복잡 하 다
  • C. 문서 형 데이터베이스 디자인 모델 1
    {
      "name": "A",
      "children": [
        {"name": "B", "children": [{"name": "D"}]},
        {"name": "C"}
      ]
    }

    전체 트 리 구 조 를 하나의 문서 로 저장 하고 문서 구 조 는 트 리 구조 로 간단명료 하고 이해 하기 쉽다.
  • 장점: 간단명료 하고 알 기 쉽다
  • 단점: 문서 가 점점 커지 고 모든 노드 에 대한 수정 이 이 문서 에 집중 되 며 병행 작업 이 제한 된다
  • .
    D. 문서 형 데이터베이스 디자인 모델 2
    {"_id": "A", "children": ["B", "C"]}
    {"_id": "B", "children": ["D"]}
    {"_id": "C"}
    {"_id": "D"}

    각 결산 점 의 모든 하위 결산 점 을 저장 하 다.
  • 장점: 구조 가 간단 하고 자 결점 찾기 가 편리 하 다
  • 단점: 아버지의 결점 을 찾 는 것 이 번 거 로 울 수 있다
  • E. 문서 형 데이터베이스 디자인 모델 3
    {
      "leaf": "A",
      "children": [
        {"leaf": "B", "children": [{"leaf": "D"}] },
        {"leaf": "C"}
      ]
    }
    {"_id": "A", ...}
    {"_id": "B", ...}
    {"_id": "C", ...}
    {"_id": "D", ...}

    문서 형 저장 schema - less 의 장점 을 충분히 이용 하여 위의 C 방안 을 이용 하여 큰 트 리 문 서 를 저장 한 다음 에 모든 노드 의 다른 정 보 를 따로 저장 합 니 다.
  • 장점: 조작 이 편리 하고 구조 적 인 조작 은 큰 트 리 문 서 를 직접 조작 할 수 있 으 며 데이터 상의 조작 도 단일 데이터
  • 만 조작 해 야 한다.
  • 단점: 모든 결점 에 대한 수정 이 이 문서 에 집중 되 고 병행 작업 이 제한 된다
  • 좋은 웹페이지 즐겨찾기