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

Ayuda para diseñar una base de datos

Estas en el tema de Ayuda para diseñar una base de datos en el foro de Bases de Datos General en Foros del Web. Espero ser lo suficientemente claro, para explicar lo que necesito, porque se que muchas veces el hacer una explicación entreverada contribuye a obtener 0 respuesta. ...
  #1 (permalink)  
Antiguo 27/02/2003, 15:39
 
Fecha de Ingreso: noviembre-2001
Ubicación: Montevideo
Mensajes: 506
Antigüedad: 23 años
Puntos: 0
Ayuda para diseñar una base de datos

Espero ser lo suficientemente claro, para explicar lo que necesito, porque se que muchas veces el hacer una explicación entreverada contribuye a obtener 0 respuesta.

Estoy realizando el sitio web de un colegio. En el tengo una base de datos de access, en donde están todos los alumnos. Es decir tengo como campos (nº de alumno, apellidos, nombre, dirección, cumpleaños, email, etc).

Cada alumnos puede participar en uno o más grupos extras (como guitarra, teatro, fútbol, handball, etc).

Necesito asociarle a cada alumno la actividad que realiza.

Pensé en agregarle a la base existente; campos con cada actividad donde el valor fuera SI/NO. Es decir está en guitarra o no está. Pero al ser muchas actividades tengo miedo de sobrecargar la base.

Por otro pensé en generar otra tabla con el número de alumno (único) y la actividad; pudiendo tener cada alumno más de una actividad. Pero al generar un listado de alumnos en una actividad específica, tendría que permanentemente leer la base principal, para obtener nombre, apellido, etc.

Puede que esté exagerando y que ambas soluciones, finalmente no recarguen tanto al servidor, pero quería saber si existe algo mejor, algo así como tener un campo actividad y dentro del mismo insertar muchos valores o una tabla anidada.

Espero que hayan entendido y muchas gracias por el tiempo que se tomaron en al menos leer este post.
__________________
Alvaro García
  #2 (permalink)  
Antiguo 27/02/2003, 16:54
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 10 meses
Puntos: 11
1-tienes una tabla de registrar donde cada alumno mete sus datos con un unico ID.

2- tienes una tabla de actividades donde cada actividad tiene un unico ID

3- HAces una nueva tabla que relacione IDalumno con IDactividad.


Entonces para saber cuales actividades eligio dado alumno haces una consulta a esta 3a tabla mediante el IDalumno.

Simple no?
  #3 (permalink)  
Antiguo 27/02/2003, 22:07
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 11 meses
Puntos: 1
Pues primero te recomiendo leer esto:

http://www.forosdelweb.com/showthrea...hreadid=117435

Si no quieres sobre cargar la BD simplemente cambia de BD por que Access es una basura, mejor andate por otro manejador...

Y luego

ALumnos

IdAlumno | Nombre


Actividades

IdActividad | Actividad

Actividad_Alumno

Id| IdActividad | IdALumno

y listo, ahi tienes tus relaciones
  #4 (permalink)  
Antiguo 28/02/2003, 11:39
 
Fecha de Ingreso: noviembre-2001
Ubicación: Montevideo
Mensajes: 506
Antigüedad: 23 años
Puntos: 0
Muchas gracias.

El servidor, soporta solo Access. Y la opción con SQL Server es más cara. Todo el sitio está desarrollado en ASP, así que tampoco puedo irme fuera de Windows 2000.

Saludos,
Álvaro.
__________________
Alvaro García
  #5 (permalink)  
Antiguo 28/02/2003, 13:34
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 11 meses
Puntos: 11
Si tienes una Licencia de Microsoft Office
tienes el motor de Base de Datos del SQL Server (MSDE)

el cual te puede servir, aunque esta limitado es potente.


la otra, puedes cambiar a MySql, y por odbc o ADO (es decir
de la misma manera a la que accedes a Access lo haces contra
mysql) que es FREE.
__________________
Jorge Mota
Blog
Gubiz estafa
  #6 (permalink)  
Antiguo 01/03/2003, 00:03
Avatar de josego  
Fecha de Ingreso: enero-2002
Mensajes: 126
Antigüedad: 22 años, 10 meses
Puntos: 0
Normalización de BD

Se ve fácil...aquí va el modelado:

Tabla Estudiantes:
id_estutidante (clave primaria)
nombre
apellido

Tabla Actividades
id_actividad (clave primaria)
nombre

Tabla Participantes_en_Actividades
id_registro (clave primaria)
id_estudiante (clave foránea)
id_actividad (clave foránea)

Si quisieras saber:

Estudiantes de una actividad en particular

"SELECT e.nombre, e.apellido
FROM participantes p, estudiantes e, actividades a
WHERE (e.id_estudiante = p.id_estudiante) and
(a.id_actividad = p.id_actividad) and
(a.nombre = 'FUTBOL')"

Espero te sirva.

Jo
__________________
José G. Díaz Unda
Analista de Sistemas

Última edición por josego; 01/03/2003 a las 00:05
  #7 (permalink)  
Antiguo 01/03/2003, 10:02
 
Fecha de Ingreso: noviembre-2001
Ubicación: Montevideo
Mensajes: 506
Antigüedad: 23 años
Puntos: 0
Gracias de nuevo a todos.

El problema es que el servicio contratado por el colegio es Windows 2000 con soporte asp, pero sin SQL server.

No hay nada que yo pueda hacer, aunque me compre el SQL server no soluciono nada.

Igualmente he probado las soluciones aportadas, y por suerte Access respondió sin problemas y bastante rápido.
__________________
Alvaro García
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




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