2016-07-20 2 views
1

Каков наилучший способ структурирования базы данных в Firebase по следующей схеме:Как создать базу данных Firebase для статического списка?

Я создаю приложение, которое имеет самые основные функции Yelp (перечисляет предприятия на основе выбранного города).

Мне нужно хранить много информации (адрес, часы, электронные письма и т. Д.) Для отдельных предприятий. Мне также нужно убедиться, что у меня есть способ однозначно идентифицировать каждый бизнес - мое решение заключалось в использовании номера бизнес-телефона или электронной почты.

Поскольку поисковые запросы проводятся в городе, я думал, что лучший способ структурировать мое дерево данных будет:

Cities 
    Phone 
    Business Name 
    City 
    Contact Name 
    Contact E-Mail 
    E-Mail 

Am Я полностью покинуть базу здесь относительно использования надлежащего NoSQL/Firebase структуры данных или я на правильном пути? Если это не так, как мне лучше улучшить дерево данных?

ответ

3

Эта структура, вероятно, прекрасна, хотя я бы рекомендовал использовать более стабильный уникальный ключ (электронные письма и номера телефонов могут меняться). Я бы рекомендовал структуры что-то вроде:

/businesses/{cityId}/{businessId} 
    name 
    phone 
    contactName 
    contactEmail 
    email 

Где cityId может быть только URL-дружественное имя города, как sf или nyc. Основная задача структурирования данных для базы данных Firebase Realtime заключается в том, что вы можете запрашивать только одно свойство за раз, поэтому вам нужно убедиться, что значительная часть сегментации данных выполняется через структуру пути (вот почему вы не захотите city как собственность бизнеса).

+0

Это ответ на мой вопрос, но если я могу задать более сложный вопрос: как мне лучше структурировать данные, если бы я использовал данные геолокации (например, запрос базы данных для ближайших 10 предприятий из текущего местоположения)? – Abhi

+1

Для этого вы хотите посмотреть [GeoFire] (https://github.com/firebase/geofire). :) –