Rendimiento BaDa y Consultas SQL

Estoy haciendo una base de datos para una empresa mediana, donde maneja cientes, epleados, créditos, etc.
Tengo una tabla llamada Personas, donde almaceno toda la información general de las todas las personas que se involucran en el sistema, es decir guardo todos los nombres y datos personales de los empleados, de los clientes, y de las referencias de crédito que proporcionan los clientes, y así en la tabla de empleados por ejemplo, solo hago referencia al id_persona del empleado que estoy registrando y en los créditos referencio el id_persona del cliente al que le estoy dando crédito, y así...
Entonces un companero me ha dicho que no debería hacerlo así, ya que llegaría el momento en que la tabla de personas tendría tantos registros, que al hacer las consultas de las otras tablas que hacen referencia a personas tardaría muchísimo, y me dijo que debería mejor poner los datos generales de los clientes en su tabla de clientes, los de los empleados en la tabla de empleados y así, para desaparecer la tabla de personas.
¿Esto es correcto? ¿Mi diseño inicial podría traerme esos problemas? ¿O solo es la forma en que estructure mis consultas lo que puede afectar el rendimiento del sistema?
Creo que SQL es un lenguaje muy poderoso y que fácilmente me puede dar el resultado de una tabla con unos cuantos miles de registros, pero no estoy seguro de que pueda pasar.

1 respuesta

Respuesta
1
Según la exposición del modelo comentado, se denota un fallo de diseño, y una mejora:
La mejora consiste, en transformar la tabla personas en una tabla independiente de clientes y otra de empleados (estructuración de diseño y comprensión conceptual).
El problema del diseño, consiste, en que como se ha expuesto, en la tabla de personas, constan "las referencias de créditos", con lo que nos encontramos con una relación de 1-N sobre una tabla que posee campos comunes, es decir, se van a crear repeticiones de campos (pj. nombre, apellido...).
Para evitar este problema, hay que normalizar, creando una tabla intermedia, donde constarán todos los identificadores clave, para relacionar las tres tablas (empleados, clientes, créditos), esta tabla de relación se podría llamar Referencias, con clave primaria id_empleado, id_cliente, id_credito y quizás atributos de fecha o referenciales al crédito de un cliente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas