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

Normalizar Bases de Datos en MySql

Estas en el tema de Normalizar Bases de Datos en MySql en el foro de Bases de Datos General en Foros del Web. Holas!! Estoy haciendo una web com PHP y tengo diferentes cosas que tiran de bases de datos, y me gustaría saber hasta que punto permite ...
  #1 (permalink)  
Antiguo 11/08/2004, 05:32
Avatar de Animanganime  
Fecha de Ingreso: noviembre-2003
Ubicación: Tenerife
Mensajes: 90
Antigüedad: 20 años, 5 meses
Puntos: 0
Normalizar Bases de Datos en MySql

Holas!!

Estoy haciendo una web com PHP y tengo diferentes cosas que tiran de bases de datos, y me gustaría saber hasta que punto permite MySQL normalizar una base de datos, es decir, que esté optimizada al máximo y ocupe lo menos posible.

Lo comento porque quiero hacer, por ejemplo, unas guías de episodios de diferentes series, cada una tiene x episodios entonces yo tengo ideado crear un ID para cada registro, un campo categoría que es el nombre de la serie, un campo numérico para los correspondiente capitulos de cada serie y otro para el texto de cada episodio.

El problema que me crea esto es que habrá muchas repeticiones, es decir, el nombre de la serie se repitirá tantas veces como episodios tenga y como habrá muchas series pues los números de episodios tambie´n, cosa que al cargar esa tabla para hacer consultas se hará muy lento.

La única manera sería crear tablas independientes para cada cosa? o Hay alguna manera de relacionar las tablas como en Access?

Saludos!!
  #2 (permalink)  
Antiguo 11/08/2004, 05:43
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Lo que planteas se puede hacer perfectamente en MySql, si bien es cierto que las claves foráneas sólo las puedes definir usando tablas INNODB.
De todas formas, lo que planteas sólo es una cuestión de diseño, no del gestor de base de datos:
tabla series: idserie, nombre
tabla episodios: idepisodio, idserie, nombre

Con estas dos tabla definidas así, te evitas el guardar el nombre de la serie tantas veces como episodios tengas.
Otra posibilidad, más normalizada, pero de más trabajo para programar, sería normalizando por completo
Series: idserie, nombre
Episodios: idepisodio, nombre
Rel_Ser_Epi: idserie, idepisodio (esta tabla es la que relaciona los episodios con las series).

Espero que te sirva de ayuda.
Un saludo.
  #3 (permalink)  
Antiguo 11/08/2004, 10:52
Avatar de Animanganime  
Fecha de Ingreso: noviembre-2003
Ubicación: Tenerife
Mensajes: 90
Antigüedad: 20 años, 5 meses
Puntos: 0
Eso

Holas!!

Claro es a eso a lo que yo me refería, quiero normalizar al máximo posible debido a que asñi ocupará menos espacio mi base de datos y será más rápida de manejar con lo cual gano velocidad en la navegación sobretodo cuando el número de registros se incremente.

Pero de todos modos no hace falta hacer relaciones entonces utilizo consultas con el INNER JOIN de siempre para sacar los datos que necesito, cierto?

Saludos!!
  #4 (permalink)  
Antiguo 12/08/2004, 02:49
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Vamos a ver: las relaciones las tienes que definir siempre, puedas definir o no las claves foráneas.
Me explico. El hecho de que no puedas definir una clave foránea, que es la forma expresa de indicar las relaciones, no implica que no tengas definidas las relaciones ya sea por medio de un campo que contiene la clave primaria de otra tabla o por una tabla que define la relación entre otras dos.
Mírate los artículos que se referencian en este tema, seguramente te ayuden a aclarar más las cosas.
Un saludo.
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 09:19.