![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Normalización BD
Me imagino que este es un tema bastante recurrente para muchos programadores... cual es la mejor forma de estructurar una BD relacional.
Una misma situación resuelta de dos maneras. Caso 1: Tablas: usuarios (id, nombre, apellido) PK: id empresas (id, nombre) PK: id empresa_usuario (id_usuario, id_empresa) PK: id_usuario, id_empresa rendiciones (id_usuario, id_empresa, nren, tipo) PK: id_usuario, id_empresa, nren detrendiciones (id_usuario, id_empresa, nren, ncorr, detalle) PK: id_usuario, id_empresa, nren, ncorr Caso 2: Tablas: usuarios (id, nombre, apellido) PK: id empresas (id, nombre) PK: id empresa_usuario (id, id_usuario, id_empresa) PK: id rendiciones (id, id_ue, nren, tipo) PK: id detrendiciones (id, id_ren, ncorr, detalle) PK: id Siguiendo con la lógica del caso 2, la clave primaria siempre sería simple, es decir un solo campo... esto es correcto? Si bien yo solo planteo un ejemplo, creo que es aplicable a cual situación. Cual es la forma correcta de desarrollar esto? Existe una única forma correcta? Como lo plantearía ustedes? Espero me puedan guiar a la mejor resolución de mi problema. Gracias |
|
#2
|
||||
|
||||
|
Hola
Me da la impresion de que por simpleza la opcion 2 es mejor, pero no creo que se pueda aplicar en todos los casos. Ahora: ¿Es realmente necesario poner todas estas claves primarias?. Saludos
__________________
Siempre Novato |
|
#3
|
|||
|
|||
|
Gracias cara po tu pronto respuesta.
Si no pongo las claves primaras como está expuesto, como lo harías tu? Cual es la forma que plantea la teoría de como se hace esto? Me imagino que esa es la forma correcta de hacerlo. |
|
#4
|
||||
|
||||
|
Hola
No se cual es la mejor o la adecuada forma de hacerlo. Yo no suelo usar claves primarias salvo en las tablas que contengan campos unicos o en tablas que tenga que ligar con otras (contados casos), en las demas simplemente no pongo nada. No creo que sea el mas adecuado para decirte si es o no correcto. Saludos
__________________
Siempre Novato |
|
#5
|
||||
|
||||
|
Para ayudar mejor haría falta saber más de las tablas y sus campos, por ejemplo, ¿qué es rendiciones y detrendiciones?
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#6
|
||||
|
||||
|
Nada como el viejo entidad-relacion para poder aclarar eso si con una explicacion de cada una de las entidades.
|
|
#7
|
|||
|
|||
|
Explico un poco mas la situación.
La tabla usuarios contiene un listado de todos las personas que utilizan el programa. La tabla empresas son las distintas empresas que se pueden escoger para trabajar en ellas. La tabla empresa_usuario hace la relación que usuarios pueden utilizar que empresas. La tabla rendiciones es la parte "maestra" o "encabezado" de las rendiciones que pueden hacer los distintos usuarios, además el correlativo (nren) es independiente por cada usuario en cada empresa. La tabla detrendiciones es el "detalle" de la tabla rendiciones, en donde ncorr es el correlativo de los distintos items de la rendicion. Espero se entienda mejor, gracias |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Acerca de normalización de BD. | fide | Conexión con bases de datos | 7 | 25-03-2008 09:14:26 |
| La normalización de relaciones con Cuba, un tema explosivo en el seno de UE | Epachsoft | La Taberna | 2 | 04-04-2007 22:23:30 |
| Normalización Adecuada | plasma | Firebird e Interbase | 12 | 18-10-2006 04:57:01 |
|