한이음 프로젝트 - Firebase 설계

DaY·2021년 7월 8일
1

한이음

목록 보기
13/15
post-thumbnail

NoSQL

Firebase는 스키마가 없는 데이터베이스, 즉, 비관계형 데이터베이스로 테이블을 구성하는 스키마 혹은 컬럼의 자료형 등 규칙이 따로 없다.
따라서 분산처리와 데이터의 안정성, 확장성이 뛰어나다.

NoSQL의 종류는 다음과 같다.

Firebase는 Document, 즉 문서형에 해당하므로 JSON 형식의 문서를 사용하여 저장한다.
기본적으로 부모-자식 관계를 가지고 Node 형태의 방식으로 데이터 구조를 쌓는다.
이는 키(부모)-값(자식) 구조, 트리구조로 볼 수 있다.

구조

유저 정보를 저장하는 구조
Users
ᅠᅠ└─ User ID
ᅠᅠᅠᅠᅠᅠᅠᅠ├── User ID
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Profile Image
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Nickname
ᅠᅠᅠᅠᅠᅠᅠᅠ└── Day

작성된 일지를 저장하는 구조
Diary
ᅠᅠ└─ Diary ID
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Diary ID
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Publisher
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Date
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Weather
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Title
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Description
ᅠᅠᅠᅠᅠᅠᅠᅠ└── Image

온도, 습도, 조도, 물주기 등의 정보를 아두이노로부터 받아와 저장하는 구조
Temperature
ᅠᅠ└─ Temperature ID
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Temperature ID
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Publisher
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Time
ᅠᅠᅠᅠᅠᅠᅠᅠ├── Rate
ᅠᅠᅠᅠᅠᅠᅠᅠ└── OnOff

이를 JSON 형태로 나타내면 다음과 같다.

{
  "Users" : {
    "User_ID" : {
      "id" : "User_ID",
      "profile" : "",
      "nickname" : "",
      "day" : 
    }
  },
  "Diary" : {
    "Diary_ID" : {
      "diaryid" : "Diary_ID",
      "publisher" : "",
      "date" : ,
      "weather" : "",
      "title" : "",
      "description" : "",
      "image" : ""
    }
  },
  "Temperature" : {
    "Temperature_ID" : {
      "publisher" : "",
      "temperatureid" : "Temperature_ID",
      "time" : ,
      "rate" : ,
      "onoff" : true
    }
  },
  ...
}

0개의 댓글