Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Clave primaria

Estas en el tema de Clave primaria en el foro de Bases de Datos General en Foros del Web. Soy realmente nuevo en esao de bases de datos, apenas y he creado las tablas, la cuestion es la siguiente: tengo una tabla con usuarios ...
  #1 (permalink)  
Antiguo 12/11/2008, 17:28
 
Fecha de Ingreso: septiembre-2003
Ubicación: Bogotá
Mensajes: 1.024
Antigüedad: 20 años, 7 meses
Puntos: 1
Pregunta Clave primaria

Soy realmente nuevo en esao de bases de datos, apenas y he creado las tablas, la cuestion es la siguiente:

tengo una tabla con usuarios y el id del ususario, tengo otras tablas donde pongo las calificaciones de los usuarios que se relacionan con el id, o sea yo quiero que al buscar por id se muestre el contenido de la tabla relacionado con el id, pero no quiero escribir el id en la tabla de calificaciones siendo que ya está en la tabla de usuarios.


Utilizo mysql, cómo le hago?
  #2 (permalink)  
Antiguo 12/11/2008, 17:41
 
Fecha de Ingreso: noviembre-2008
Mensajes: 1
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Clave primaria

hey esta no es una respueta a tu pregunta,,,,lo que pasa es que acabo de ingresar a este foro,pero no puede crear mis mensajes o hacer mis preguntas, no encuetro la opcion..de como crear uno nuevo,,me dices en que opcion es,.gracias..
  #3 (permalink)  
Antiguo 12/11/2008, 18:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Clave primaria

Cita:
Iniciado por linuxfilo Ver Mensaje
Soy realmente nuevo en esao de bases de datos, apenas y he creado las tablas, la cuestion es la siguiente:

tengo una tabla con usuarios y el id del ususario, tengo otras tablas donde pongo las calificaciones de los usuarios que se relacionan con el id, o sea yo quiero que al buscar por id se muestre el contenido de la tabla relacionado con el id, pero no quiero escribir el id en la tabla de calificaciones siendo que ya está en la tabla de usuarios.


Utilizo mysql, cómo le hago?
No se entiende muy bien el planteo, pero el tema parece que pasa por faltarte , tal vez, alguna que otra tabla para que la cosa esté más sencilla.
Me explico:
El ejemplo de los exámenes de un alumnos es un ejemplo típico de los ejercicios de Bases de Datos en la Facultad. En este ejercicio, siempre aparecen dos tablas básicas, Usuarios y Calificación. En ese contexto, lo que debes plantearte es cómo se relacionan los usuarios con las calificaciones:
- Un usuario tiene una sola calificación (1 a 1).
- Un usuario puede tener muchas calificaciones (1 a N).
- Una calificación es para un sólo y único tema. SI: La tabla es única. NO: La calificación se relaciona con una tercera tabla, digamos "Temas".

Lo dejo allí, pero el modelado final para aplicar en una institución educativa implica alrededor de 12 tablas.

Ahora bien. Supongamos que el modelo sea de sólo calificar usuarios por un único rubro:
- En las relaciones de tipo 1 a 1, la clave de una tabla va en la otra tabla como FK. Como la relación es 1:1, no importa cual vaya en cual, con pasar una alcanza. Usualmente es preferible que el ID del Usuario esté en la tabla de Calificación, lo que daría:
Usuario(IDUser, NombreUser)
Calificacion(IDCalificacion, IDUser, Denominacion, Calificacion)

Lo que requeriría un
Código sql:
Ver original
  1. SELECT NombreUser, Denominacion, Calificacion
  2. FROM Usuario INNER JOIN Calificacion USING (IDUser);

- Si las relaciones son 1 a N, la cosa se complica, porque a) la clave foránea va siempre en la tabla de cardinalidad N, y b)la sola inclusión de las dos calves no es suficiente para identificar un registro, porque puede aparecer varias veces, por ejemplo, en diferentes fechas:
Esto daría un modelo, por ejemplo:
Usuario(IDUser, NombreUser)
Calificacion(IDCalificacion, IDUser, FechaCalif, Denominacion, Calificacion)

y requeriría:
Código sql:
Ver original
  1. SELECT NombreUser, fechaCalif, Denominacion, Calificacion
  2. FROM Usuario INNER JOIN Calificacion USING (IDUser)
  3. ORDER BY fechaCalif;

¿Me estoy acercando o no se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:43.