problema con base de datos

Iniciado por Basil, 2 Enero 2011, 02:54 AM

0 Miembros y 1 Visitante están viendo este tema.

Basil

hola, primero que nada feliz año nuevo.
tengo un problema con base de datos porque no entiendo, así que les pido su ayuda POR FAVOR  :-[

bueno tengo dos tablas, una llamada profesor y la otra grupo cuya relación es muchos a muchos, así que tengo la tabla intermedia profesor_grupo, la cosa que no entiendo es la siguiente:

tengo los grupos A1, B1, C1 y D1
y los profesores Fulano, Mengano, Zutano y Perengano

Fulano imparte a los grupos A1, C1 y D1
Mengano imparte a los grupos B1 y D1
Zutano imparte a D1, A1 y B1
y Perengano sólo a B1

mi tabla profesor_grupo quedaría así:

profesor_grupo
_____________
id
id_profesor
id_grupo

y los datos almacenados serían:

id  id_profesor  id_grupo
_____________________
1     1                1
2     2                2
3     3                3
4     4                4

cómo es que sé qué grupos le pertenecen a cada profesor??  :huh:
o eso lo tengo que hacer programando??
NO ENTIENDO  :-(
AYUDA POR FAVOR!!!  :-(
living is easy with eyes closed, misunderstanding all you see

marlon_agz

#1
En que estas trabajando ??
asi a la rapida en Access se me ocurre algo asi


Id Profesores A1 B1 C1 D1
2 Fulano          Sí No No
3 Sutano        No No
4 Merengano       Sí No No
5 Pascual        No No


Las Columnas A1 B1 C1 D1 son bolean, en access es si/no, pero en MsSql server son True/False

Espero esto te sirva o de una idea (mejor dicho espero no equivocarme xD )
Salu2

Aberroncho

Tal y como lo planteas deberías tener tres tablas +/- así:



---------------
Tabla: PROFESOR
---------------

ID_PROFESOR   NOMBRE_PROFESOR
-----------   ---------------
P1            Fulano
P2            Mengano
P3            Zutano
P4            Perengano



------------
Tabla: GRUPO
------------

ID_GRUPO   NOMBRE_GRUPO
--------   ------------
G1         Grupo A1
G2         Grupo B1
G3         Grupo C1
G4         Grupo D1



---------------------
Tabla: PROFESOR_GRUPO
---------------------

ID_PROFESOR   ID_GRUPO
-----------   --------
P1            G1
P1            G3
P1            G4
P2            G2
P2            G4
P3            G1
P3            G2
P3            G4
P4            G2



A partir de ahí, cada vez que quieras recuperar a que grupos les da clase un profesor, es tan sencillo como hacer una join de tablas:



SELECT
       GRUPO.ID_GRUPO
     , GRUPO.NOMBRE_GRUPO
FROM
       PROFESOR
     , PROFESOR_GRUPO
     , GRUPO
WHERE
       PROFESOR.NOMBRE_PROFESOR = 'Fulano'
   AND PROFESOR.ID_PROFESOR = PROFESOR_GRUPO.ID_PROFESOR
   AND PROFESOR_GRUPO.ID_GRUPO = GRUPO.ID_GRUPO



Y a partir de aquí, ya es cuestión de que juegues con la consultas para ir obteniendo la información que quieras.

También podrías hacerlo por código. Según como sean las tablas, lo que quieras obtener, la base de datos con la que estés trabajando y el volumen de datos que esperes recuperar, podría incluso ser más rápido.

"La ignorancia es la noche de la mente, pero una noche sin Luna ni estrellas."
(Confucio)

Basil

estoy trabajando en sql server y programando en c#  ;D
pero ya entendi :D
muchisimas gracias por su ayuda  ;-)
living is easy with eyes closed, misunderstanding all you see