es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cuando una tabla contiene una columna que hace referencia al _id de otra tabla, ¿es necesario incluir las columnas de la tabla referenciada?

En MongoDB,

supongamos que tengo una tabla llamada “Skills”, la cual tiene una columna que hace referencia a la clave primaria de “Users”.

Las consultas que involucran la obtención de datos de “Skills” también deberán obtener datos sobre “Users”.

Pregunta:

¿Deberían incluirse las columnas de “Users” que contienen datos que serán obtenidos en la tabla de “Skills”, o simplemente deberían buscarse en la tabla de “Users”?

EDITADO:

¿Qué forma sería más rápida? Y si hay alguna diferencia, ¿es despreciable?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    En MongoDB, no hay tablas ni claves foráneas como en las bases de datos relacionales como SQL, en su lugar, tenemos colecciones y documentos.

    Suponiendo que tenemos una colección llamada Skills que contiene documentos que hacen referencia al campo _id de la colección Users usando la sintaxis ref, el enfoque recomendado es buscar los datos en la colección Users en lugar de incluirlos en los documentos de Skills.

    Este enfoque se conoce como normalización de la base de datos, que tiene como objetivo reducir la redundancia de datos, mejorar la consistencia de datos y evitar anomalías que puedan surgir al actualizar datos en varios lugares.

    En cuanto a la pregunta de qué camino es más rápido, depende del tamaño de las colecciones y del tipo de consultas que se estén realizando. En general, realizar una operación de búsqueda puede ser más lento que consultar una sola colección. Sin embargo, con técnicas adecuadas de indexación y optimización de consultas, el impacto en el rendimiento debería ser insignificante para la mayoría de los casos de uso. Por lo tanto, se recomienda seguir el enfoque de normalización a menos que haya razones legítimas para desnormalizar los datos.

Comments are closed.