Estoy leyendo documentos de mi base de datos que tiene datos desnormalizados dentro de ellos. Utilizo estos datos para representar un componente GUI "UserListItem" en el que se puede hacer clic.
Cuando el usuario presione este componente, navegará a una pantalla "Perfil".
Entonces, si, por ejemplo, después de obtener un documento desnormalizado obtengo lo siguiente:
{ userData: { // Denormalized data id, avatar, name, username, isCelebrity }, ... other stuff }
y la pantalla "Perfil", a la que navega el usuario al hacer clic, requiere los siguientes campos de usuario:
userData = { /* Included in denormalization */ id, avatar, name, username, isCelebrity, /* Not included in denormalization */ totalFollowers, totalFollowing, status, premium, }
¿Cómo puedo manejar esta situación? Quiero decir, ¿cuál es la estrategia típica?
He pensado en hacer esto en la pantalla de perfil:
useEffect(() => { if(!isUserDataComplete(userData)) { // Check that the userData object contains all the required fields const newUserData = getUserData(userData.id); // DB Fetch users.updateData(newUserData); // Updating the user data in our context } }, []);
Pero no estoy seguro de si este es un enfoque bueno y "limpio".
Y además, ¿esta situación tiene nombre? Para leer más al respecto.
Pero no estoy seguro de si este es un enfoque bueno y "limpio".
Esto depende en gran medida de sus requisitos funcionales, de los derechos de acceso, de la frecuencia de actualización y del volumen de los datos que no están "incluidos en la desnormalización".
Si:
UserList
pueden leer los Profiles
correspondientes;UserList
de usuarios y el momento en que abre uno de los Profile
(haga clic en una línea de la Lista de UserList
si entiendo correctamente), los datos que no están "incluidos en la desnormalización" no van a cambiar;totalFollowers
y totalFollowing
son números, status
puede ser un código y premium
un booleano); Entonces probablemente debería incluir "en la desnormalización" los datos que no están incluidos: guardará algunas lecturas, ya que los datos que se mostrarán al abrir un Profile
ya se habrán obtenido.
Por otro lado, si una de las condiciones anteriores no es cierta, probablemente debería quedarse como está y recuperar los datos que no están "incluidos en la desnormalización" cuando el usuario abre un Profile
.