2016-12-09 2 views
0

Я пытаюсь создать базу данных nosql в первый раз. У меня есть таблица пользователя, которая содержит: имя и адрес электронной почты. Теперь каждый пользователь может иметь более одного устройства.Структура базы данных Firebase/NoSQL

Каждое устройство имеет несколько элементов, в основном имеющих массив показаний.

Вот что моя нынешняя структура выглядит следующим образом:

enter image description here

Как я могу улучшить эту структуру?

ps: Я использую angularjs с угловым огнем.

ответ

1

В реляционных базах данных существует понятие нормальных форм и, следовательно, связано несколько объективной мерой нормализации модели данных.

В базах данных NoSQL вы часто в конечном итоге моделируете данные для того, как ваше приложение их потребляет. Следовательно, существует небольшая концепция того, что представляет собой хорошую модель данных, без учета использования вашего приложения.

Это сказало: Firebase documentation recommends flattening your data. Более конкретно, он рекомендует не смешивать типы данных, как вы делаете с метаданными пользователя и метаданных устройства.

рекомендация будет разделить их на два узла верхнего уровня:

/users 
    <userid1> 
    email: 
    id: 
    name: 
    <userid2> 
    email: 
    id: 
    name: 
/devices 
    <userid> 
    <deviceid1> 
     <measurement1> 
     <measurement2> 
    <deviceid2> 
     <measurement1> 
     <measurement2> 

Далее рекомендуется чтение NoSQL data modeling и просмотра нашего Firebase for SQL developers. О, конечно, Firebase documentation on structuring data.

+0

Эй, @ Франк ван Пуффлен, большое спасибо за ваш ответ. Так что в устройствах я бы правильно установил идентификатор устройства? –

+0

Yup. Я упустил из виду, что в вашем JSON так обновил свой ответ с дополнительным слоем. Btw, для следующего вопроса: отправьте JSON в виде текста (вы можете легко экспортировать его из Firebase Console). Это позволяет мне повторно использовать его в ответе (среди многих других преимуществ). –

+0

Я хотел бы запросить базу данных для последнего устройства, которое используется в настоящее время для пользователя, как я могу это сделать? Нужно ли сначала запрашивать пользователей, а затем проверять их с помощью устройств? –

 Смежные вопросы

  • Нет связанных вопросов^_^