Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/03/2011, 07:09
Avatar de Kamae
Kamae
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: como funciona facebook?

Empieza por plantearte ejemplos sencillos, ponte en casos reales y analízalos. Pongamos que quieres una base de datos para los profesores de una escuela y quieres saber las materias que imparten. Con éste enunciado te puedes imaginar que se generarán 2 tablas: profesor y materia.

Tabla: Profesor
Campos: id, nombre, poblacion...

Tabla: Materia
Campos: id, nombre, duracion...

Ahora debes establecer la relación que hay entre estas dos tablas.
Debes hacerte dos preguntas. La primera: ¿cuántos profesores pueden impartir UNA MISMA materia? Sabemos que la materia de matemáticas o lengua o historia, se da en varios cursos, por lo tanto es lógico que haya varios profesores de una misma materia. Respuesta: varios.

Segunda y última pregunta, la misma pero al revés: ¿cuántas materias pueden ser impartidas por UN MISMO profesor? Sabemos que en algunos casos, sobretodo en primaria y ESO, hay profesores que imparten más de una materia, por ejemplo un tutor de un curso puede impartir las materias de Tutoría, Lengua, y Literatura. Respuesta: varios.

Ahora viene la teoría: si la respuesta a ambas preguntas es "varios", se tiene que crear otra tabla que relacione las 2.

Así pues, crearíamos una tercera tabla llamada imparte, por ejemplo.

Tabla: Imparte
Campos: id_profesor, id_materia...

Las tablas que se usan como relación sólo necesitan conectar las 2 tablas entre ellas, para ello usamos los ID de cada tabla, ya que son únicos. Si consultáramos los datos quedaría algo así:


Profesores:
(1, Javier Ibarra, Zaragoza)
(2, Arianna Puello, Girona)
...

Materias:
(1, Matemáticas, 60min)
(2, Historia, 90min)
(3, Tutoría, 30min)
...

Imparte:
(1, 2) <--- Javier Ibarra (ID USUARIO 1) imparte Historia (ID MATERIA 2)
(1, 3) <--- Javier Ibarra (ID USUARIO 1) imparte Tutoría (ID MATERIA 3)
(2, 1) <--- Arianna Puello (ID USUARIO 2) imparte Matemáticas (ID MATERIA 1)

Etc etc etc etc... El funcionamiento es siempre el mismo, claro que hay muchas variantes y complicaciones (podríamos añadir los campos "curso" y "fecha" a la tabla "imparte", y tendríamos un control de los días que se imparte una materia, a qué curso, y qué profesor la ha impartido...). También hay tablas que se relacionan con ellas mismas, relaciones entre 3 tablas, relaciones fuertes-debiles, los tipos de relación (varios-varios, varios-uno, uno-uno...).
Hay muuuucha información, te recomiendo que busques por google, empieza por este artículo de Wikipedia.

Saludos y espero que te haya servido de algo

Última edición por Kamae; 18/03/2011 a las 07:16