Я очень новичок в NoSQL и денормализации. Тем не менее, я хотел бы, чтобы действия на SignUp
в мое приложение определяется как:Как правильно денормализовать данные в Firebase
- Если имя пользователя уже занято, то пользователь не имеет права использовать его
- Если телефонный номер уже занят, то пользователь не имеет права использовать его
- Разрешить новому пользователю «синхронизации» свой номер телефона контакты с сервером, чтобы определить, кто в настоящее время пользователи, и извлекать их соответствующие UID-х
я схема описано, как ниже, учитывая быструю необходимость проверить, нет ли имени пользователя/телефона nu mber уже присутствует на пользователя зарегистрироваться, а также необходимого обслуживания и учитывая, если новые пользователи контакты номера телефонов ссылку для пользователей, уже присутствующих в приложении:
{
"presentUsersByPhoneNumber" : {
"1614#######" : {
"uid" : "fdb17f3a-7b7d-4aa5-9a0b-b9fb33c349de"
},
"1614#######" : {
"uid" : "99e4989b-a046-4c5f-9478-5ebd8bdc3ded"
},
"1614#######" : {
"uid" : "1783917f-00e4-47a0-b2cd-987bdf185129"
},
"1614#######" : {
"uid" : "a96da7b1-7c4e-44bc-b82e-fc75bed52bcd"
}
},
"presentUsersByUsername" : {
"ak" : {
"uid" : "a96da7b1-7c4e-44bc-b82e-fc75bed52bcd"
},
"ak2" : {
"uid" : "99e4989b-a046-4c5f-9478-5ebd8bdc3ded"
},
"ak3" : {
"uid" : "1783917f-00e4-47a0-b2cd-987bdf185129"
},
"kja" : {
"uid" : "fdb17f3a-7b7d-4aa5-9a0b-b9fb33c349de"
}
},
"users" : {
"1783917f-00e4-47a0-b2cd-987bdf185129" : {
"phoneNumber" : "614#######",
"username" : "ak3"
},
"99e4989b-a046-4c5f-9478-5ebd8bdc3ded" : {
"phoneNumber" : "1614#######",
"username" : "ak2"
},
"a96da7b1-7c4e-44bc-b82e-fc75bed52bcd" : {
"phoneNumber" : "1614#######",
"username" : "ak1"
},
"fdb17f3a-7b7d-4aa5-9a0b-b9fb33c349de" : {
"phoneNumber" : "1614#######",
"username" : "kja"
}
}
}
такой подход идет слишком справедливо в акт denormalizaiton?