Cloud Firestore에서 데이터를 구조화할 때 다음과 같은 몇 가지 옵션이 있습니다.
사용 사례와 관련된 각 옵션의 장점을 고려하십시오. 계층적 데이터에 대한 몇 가지 예제 구조가 이 가이드에 설명되어 있습니다.
문서의 중첩 데이터
문서 내에서 배열이나 맵과 같은 복잡한 개체를 중첩할 수 있습니다.
- 장점: 문서 내에 유지하려는 단순하고 고정된 데이터 목록이 있는 경우 설정이 쉽고 데이터 구조가 간소화됩니다.
- 제한 사항: 특히 시간이 지남에 따라 데이터가 확장되는 경우 다른 옵션만큼 확장 가능하지 않습니다. 목록이 크거나 늘어나면 문서도 커지므로 문서 검색 시간이 느려질 수 있습니다.
- 가능한 사용 사례는 무엇입니까? 예를 들어 채팅 앱에서 사용자가 가장 최근에 방문한 3개의 채팅방을 프로필에 중첩된 목록으로 저장할 수 있습니다.
| - 사랑스러운 class
- 이름 :
첫 번째 : "에이다" 마지막 : "Lovelace" 출생 : 1815 객실 : 0 : "소프트웨어 채팅" 1 : "유명 인물" 2 : "유명한 SWE"
|
하위 컬렉션
시간이 지남에 따라 확장될 수 있는 데이터가 있는 경우 문서 내에서 컬렉션을 만들 수 있습니다.
- 장점: 목록이 커져도 상위 문서의 크기는 변경되지 않습니다. 또한 하위 컬렉션에서 전체 쿼리 기능을 사용할 수 있으며 하위 컬렉션 전체에서 컬렉션 그룹 쿼리 를 실행할 수 있습니다.
- 제한 사항: 하위 컬렉션은 쉽게 삭제할 수 없습니다.
- 가능한 사용 사례는 무엇입니까? 예를 들어 동일한 채팅 앱에서 채팅방 문서 내에 사용자 또는 메시지 모음을 만들 수 있습니다.
| - collections_bookmark 과학
- class 소프트웨어
이름: "소프트웨어 채팅"- collections_bookmark 사용자
- 사랑스러운 class
첫 번째 : "에이다" 마지막 : "Lovelace"
- class 라이드
첫 번째 : "샐리" 마지막 : "라이드"`
- class 천체 물리학
|
루트 수준 컬렉션
데이터베이스의 루트 수준에서 컬렉션을 생성하여 서로 다른 데이터 세트를 구성합니다.
- 장점: 루트 수준 컬렉션은 다대다 관계에 적합하며 각 컬렉션 내에서 강력한 쿼리를 제공합니다.
- 제한 사항: 기본적으로 계층적인 데이터를 가져오는 것은 데이터베이스가 커짐에 따라 점점 더 복잡해질 수 있습니다.
- 가능한 사용 사례는 무엇입니까? 예를 들어 동일한 채팅 앱에서 사용자용 컬렉션 하나와 채팅방 및 메시지용 컬렉션 하나를 만들 수 있습니다.
| - collections_bookmark 사용자
- 사랑스러운 class
첫 번째 : "에이다" 마지막 : "Lovelace" 출생 : 1815
- class 라이드
첫 번째 : "샐리" 마지막 탑승" 출생 : 1951년
- collections_bookmark 방
- class 소프트웨어
- collections_bookmark 메시지
- class 메시지1
출처 : "allovelace" 콘텐츠 : "..."
- class 메시지2
에서 : "sride" 콘텐츠 : "..."
|