Должен ли я продолжать денормализацию?

Я работаю над приложением для обмена сообщениями. Я хочу иметь возможность отображать имя пользователя отправителя. В настоящее время я моделирую сообщения и пользователей и пытаюсь отобразить имя пользователя, запросив userRef с помощью authData.uid.

Messages { 
  sender: authData.uid,
  body: decoded,
  created_at: Firebase.ServerValue.TIMESTAMP
  }

Users {
  email: user.email,
  username: user.username,
  created_at: Firebase.ServerValue.TIMESTAMP
}
// This returns https://talklah.firebaseio.com/users/simplelogin%3A3/email
$scope.getUsername = function(sender) {
  var usersRef = ref.child("users");
  return usersRef.child(sender).child('email');
}

// I want to display something like this in my templates
message: Hey, how are you? (sent by [username])

Как мне следует подходить к такой проблеме?


person kwngo    schedule 16.06.2015    source источник
comment
Одним из способов было бы включить имя пользователя в сообщение в дополнение к его uid. Это позволит вам отображать список сообщений без необходимости присоединяться к пользователю. Посмотрите здесь: stackoverflow.com/questions/30693785/   -  person Frank van Puffelen    schedule 16.06.2015
comment
Спасибо, Фрэнк, думаю, денормализация — это то, что нужно!   -  person kwngo    schedule 17.06.2015