Firebase를 실험하기 시작했습니다. 관계형 데이터베이스에 익숙해지면 진정한 헤드 벤더입니다!Firebase 데이터베이스 구조
사용자가 바코드 또는 이름으로 식사를 검색하고 칼로리 수를 검색 할 수있는 앱을 디자인하려고합니다. 또한, 나는 사용자가 먹은 식사를 저장할 수 있어야하고, 매일 사용자가 먹는 음식을 매일, 주 또는 한 달에 검색 할 수 있어야합니다.
각 식사에는 고유 한 ID (예 : 피자 용 M1234)가 있다고 생각했는데 바코드와 이름별로 2 개의 조회 섹션이 있으므로 검색 기능을 포함해야합니다.
각 사용자는 먹는 '테이블'(Firebase 데이터베이스의 '테이블'에 대한 올바른 용어는 무엇입니까?)에 저장된 식사를 날짜별로 표시하고 ID로 식사를 참조합니다.
데이터베이스를 설계 한 방법입니다.
{
// Here are the users.
"users": {
"mchen": {
"name": "Mary Chen",
"email": "[email protected]",
}
},
...
},
// Here are the meals eaten by date.
"eaten": {
"mchen": {
// index Mary's meals in her profile /eaten/mchen/meals/20161217 should return 'M1234' (pizza) and 'M8765' (chips)
"meals": {
"20161217": {
"M1234": true,
"M8765": true
},
"20161218": {
"M2222": true,
"M8765": true
}
},
...
},
// Here are the meals with calorie information.
"meals": {
"M1234": {
"name": "Pizza"
"calories": 400
},
"M2222": {
"name": "Curry"
"calories": 250
},
"M8765": {
"name": "Chips"
"calories": 100
},
},
// Here is the barcode lookup
"barcode-lookup": {
"12345678": {
"id": "M1234"
},
"87654321": {
"id": "M2222"
},
"11223344": {
"id": "M8765"
}
},
// Here is the name lookup
"name-lookup": {
"Chips": {
"id": "M8765"
},
"Pizza": {
"id": "M1234"
},
"Curry": {
"id": "M2222"
}
}
}
명백한 결함이 있습니까?
이것은 도움이 될 수 있습니다. [NoSQL 데이터 모델링 기법] (https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/) – Kato