Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-07-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 23-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 23-07-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 23-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 23-07-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Para ayudar mejor haría falta saber más de las tablas y sus campos, por ejemplo, ¿qué es rendiciones y detrendiciones?
Responder Con Cita
  #6  
Antiguo 23-07-2010
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 21
Kipow Va por buen camino
Nada como el viejo entidad-relacion para poder aclarar eso si con una explicacion de cada una de las entidades.
Responder Con Cita
  #7  
Antiguo 23-07-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 00:39:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi