Comunidad de diseño web y desarrollo en internet online

MySQL: realizar estructura de BD

Citar            
MensajeEscrito el 23 Mar 2005 06:02 pm
Saludos
He estado haciendo un boceto para un sistema, y kisiera saber si hay alguna forma de relacionar los datos (informatica ANALISIS de sistemas :S ) y lograr algo así en la BD:

--------------------Matem-----Cast-------Historia
Alumno1----------4.5----------5.4----------2.6
Alumno2----------7.0----------3.9----------5.8
Alumno3----------4.6----------3.6----------5.8

No se si logro explicarme...pero por ejemplo si deseo solo tomar el dato de Alumno3 en Castellano...¿hay forma de crear la tabla asi en MySQL?...
:D PD: no estoy preguntando por codigo

Por Soundwave

Claber

1728 de clabLevel

5 tutoriales

 



Ultima edición por Soundwave el 23 Mar 2005 06:10 pm, editado 1 vez

Los Andes CHILE

msie
Citar            
MensajeEscrito el 23 Mar 2005 06:10 pm
soundwave, este tuto te viene perfecto; eso que necesitas es modelado basico de bases de datos:
http://www.cristalab.com/tutoriales/75/tutorial_basico_de_bases_de_datos

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh
Citar            
MensajeEscrito el 23 Mar 2005 06:12 pm

freddie® escribió:

soundwave, este tuto te viene perfecto; eso que necesitas es modelado basico de bases de datos:
http://www.cristalab.com/tutoriales/75/tutorial_basico_de_bases_de_datos


Gracias Fred pero eso ya lo sabía, y si es eso, toy deduciendo ke lo ke kiero no se puede hacer

Por Soundwave

Claber

1728 de clabLevel

5 tutoriales

 

Los Andes CHILE

msie
Citar            
MensajeEscrito el 24 Mar 2005 08:36 am
si, si que se puuede hacer hay varias formas

-Alumnos------Matem-----Cast-------Historia---id
Alumno1----------4.5----------5.4----------2.6------1
Alumno2----------7.0----------3.9----------5.8------2
Alumno3----------4.6----------3.6----------5.8------3

Todas las columnas son "campos" y como tales necesitan un nombre, todas las tablas mysql necesitan [o al menos asi m lo enseñaron a mi] un campo que sea "primario", es decir como un index, este puede o no autoincrementarse...

Despues solo tendrias que hacer un SELECT * FROM tabla WHERE `alumnos`='Alumno1' por ejemplo

Tambien podrias poner en vez de Alumno1 alumno2 etc etc... poner solo los numeros y te ahorras un campo, o tambien podrias poner el nombre de los alumnos "manolin Garcia", "McPepito Pelotes" ,... y hacer la buskeda como antes he dicho

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 24 Mar 2005 02:58 pm
Saludos Ice
Ok, ya entendi...pero ¿como lo harian para 800 alumnos y 10 ramos para cada alumno?

Creo una tabla por alumno con todas sus asignaturas o creo una tabla por asignatura con todos sus alumnos?? :? :P

PD Tenganme paciencia porque esto de trabajar BD's y es mi debilidad :S me fue muy mal en la U con esto, programacion cacho mas ;) Gracias

Por Soundwave

Claber

1728 de clabLevel

5 tutoriales

 

Los Andes CHILE

msie
Citar            
MensajeEscrito el 24 Mar 2005 04:33 pm
Amigo Necesitas muchos conocimientos teoricos, para hacerlo de la mejor manera.
Entre otros aqui hay algunos:
    Definición de Base de Datos
    Normalización de Base de Datos
    Estructura de una Base de Datos
    Administrador de Base de Datos
    Sistema Administrador de Base de Datos
    Interfaz de usuario
    Seguridad de Base de Datos
    Seguridad web
    Modelos de Bases de Datos
    Dato
    Registro
    Tabla
    Campo


Las bases de datos no se hacen, en base al numero de alumnos o ramos. Se basa en el resultado de un Analisis del sistema.

Ahora bien, lo mas logico que puedes hacer es tres tablas. Alumno, materia y Kardex.

Alumno
idAlumno
Nombre
Edad
Grado

Materia
idMateria
Nombre

Kardex
idKardex
idAlumno
idMateria
Calificacion

Y para mostrarlas pues:

SELECT Al.Nombre, Ka.Calificacion, Ma.Nombre
FROM Alumno Al INNER JOIN Materia Ma INNER JOIN Kardex Ka ON
al.idAlumno=Ka.idAlumno AND Ka.idMateria=Ma.idMateria
WHERE idAlumno="elAlumno que quieras";


Dices que te fue mal, en la u, supongo que te refieres a universidad. Pues bien si ya te titulaste pues no queda de otra que seguir repasando aquellos temas que no quedaron claros. Creo que en la escuela deberias ser honesto y decir que es tu primer sistema y que no te queda claro lo de las Bases de Datos. Esto para evitarte problemas.

Saludos y suerte!

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser
Citar            
MensajeEscrito el 24 Mar 2005 04:56 pm
JD, kizas eso sea un pokillo mas avanzado, aunque mejor estructurado....

Una tabla no es mas que una "cuadrilla", y si te paseas por un instituto [en la "U" pone cada asignatura su materia] veras que ponen unas listas a final de curso con los nombres de los alumnos y sus respectivas notas en cada asignatura, tu solo tienes que crear UNA tabla, llamemosla "notas" con los campos : id, alumno, asignatura1, asignatura2, asignatura3, ... [sustituir asignaturaX por el nombre que corrresponda]

despues los vas llenando, de forma que qudaria
id----alumno...asig1----asig2---asig3
1 ---Pepito ----4 ------- 3--------- 5
2 --- Manolin ----7 -------8 ------7
3 --- Juanita -----6 ------6----- 9
4---- ....

Etc etc la verdad que hacerlo en una sola tabla es .... cutre de cojones, y a la larga veras los fallos que tiene, los inconvenientes [mas que ventajas] sin duda el mejor sistema es el que propuso JD, ya que te permite tener la informacion mucho mejor estructurada y accesible.... Si es que vas a hacer el "programa" para un colegio o lo que sea,... mejor ve diciendoles que la cosa va para rato, porque se te ve un pokitin nuevo en este tema

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 24 Mar 2005 07:50 pm
Demas que tienen razón, lo que pasa como mi fuerte y mención son las Redes, Analisis se me va un poco de las manos, ya que lo vi como Plan Común...
Como lo dice JD, igual se trabajar con BD's pero no en profundidad...entiendo los conceptos dato, registro, tabla etc...lo unico ke se me hace un poco dificil es lo de normalizar y relacionar, ya ke no me siento seguro al momento de hacerlo...se tambien ke hay ke relacionar entre tablas como lo dicen uds con un ID.

OK pero... :crap: ¿como lo hago para ke en Kardex se tomen los datos de las otras tablas? ¿por programacion? o ¿ :? ? ya he creado dichas tablas :D

:roll: Envidio su conocimiento en Analisis

en todo caso...gracias ya me estoy acordando...

Por Soundwave

Claber

1728 de clabLevel

5 tutoriales

 

Los Andes CHILE

msie
Citar            
MensajeEscrito el 24 Mar 2005 08:13 pm
¿por programacion?. ya he creado dichas tablas


Con esto que te había puesto:

Código :

SELECT Al.Nombre, Ka.Calificacion, Ma.Nombre
FROM Alumno Al INNER JOIN Materia Ma INNER JOIN Kardex Ka ON
al.idAlumno=Ka.idAlumno AND Ka.idMateria=Ma.idMateria
WHERE idAlumno="elAlumno que quieras"; 


Es una consulta normal en php.

Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser
Citar            
MensajeEscrito el 24 Mar 2005 08:31 pm
Gracias por el codigo, por lo pronto kiero entender bien el cuento de la BD ke es el cimiento de esto

Sé:
Llenar, Eliminar,Actualizar y Consultar registros de BD's

Ahora mi pregunta es debo llenar la tabla kardex por programación?, o hay alguna forma de ke yo al llenar las otras tablas de alumnos y ramos con PHP, estas sean tomadas automaticamente por la tabla kardex

es decir: :D
Diagrama de Opciones
1 - guardar registro------>tablas alumno y asignatura con alguna forma de ke kardex tome los datos automaticamente de las otras tablas (alumno y asignatura)
2 - guardar registro------> a las tres tablas por PHP

NOTA
las tablas de alumno y asignatura son solo de consulta, nunca cambiaran, es decir, las llenare en la BD, pero kardex sera la ke sera modificada en el campos notas, los demas campos se mantienen

Gracias por la ayuda ;)

Por Soundwave

Claber

1728 de clabLevel

5 tutoriales

 

Los Andes CHILE

msie
Citar            
MensajeEscrito el 24 Mar 2005 09:11 pm
Mira, por ejemplo vamos a ingresar a dos alumnas:

INSERT INTO Alumno (idAlumno,Nombre,Edad,Grado)
VALUES (1,"Cris",18,1);
INSERT INTO Alumno (idAlumno,Nombre,Edad,Grado)
VALUES (2,"Natalie",19,1);

Ahora vamos a insertar tres materias:
INSERT INTO Materia (idMateria,Nombre)
VALUES (1,"Matematicas");
INSERT INTO Materia (idMateria,Nombre)
VALUES (2,"Teoria del Sipotamo");
INSERT INTO Materia (idMateria,Nombre)
VALUES (3,"Teoria del Sipotamo II");

Ok, asi insertamos cuantos alumnos tenga la escuela. Y cuantas materias tenga.

Ahora comienza el periodo de clases y las calificaciones llegan:

Pues bien, has un php, de tal manera que seleccion a un alumno, para que sepas su Id. Y tambien obten el id De la materia. Hecho esto el Insert de Kardex es muy facil:

INSERT INTO (idKardex,idAlumno,idMateria,Calificacion)
VALUES ($idKardex,"$idAlumno","$idMateria","$Calificacion")

Ok, ahora veamos en el caso de los datos que llevamos ingresados.
Supongamos que Natalie saco de calificacion un 8 en Matematicas, como quedaria el INSERT pues asi:

INSERT INTO (idKardex,idAlumno,idMateria,Calificacion)
VALUES (1,2,1,8 )

Ves solo insertas numeros, por lo que la tabla te queda muy ligera. Perto te repito, a todos y me incluyo, cuando empezamos algo, se nos hace dificil el asunto. Sigue preparandote, busca manuales, referencias, si estas en una escuela y hay alguien con experiencia en BD pide opiniones, no escatimes en seguir aprendiendo.

Saludos!

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser
Citar            
MensajeEscrito el 24 Mar 2005 09:12 pm
Lo que yo digo es ... todo eso estaba en el tuto de DBs ... solo que de otra manera; las sentencias SQL

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.