Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/05/2012, 09:47
XavierC
 
Fecha de Ingreso: mayo-2012
Mensajes: 3
Antigüedad: 11 años, 11 meses
Puntos: 0
¿Qué es mejor una tabla con todos los datos o varias tablas?

Hola,

tengo una duda a la hora de plantear las tablas para una aplicación, sobre todo tengo dudas en cuanto al rendimiento y la escalabilidad de las dos opciones que me planteo y me gustaría saber si alguien se ha encontrado con esta misma duda (seguro que sí) y que me puede recomendar.

Explico brevemente la aplicación:
Es una aplicación web en la que se podrán crear noticias y eventos, luego tendrá un sistema de validación de usuarios y un administrador seleccionará manualmente para cada noticia o evento que usuarios pueden verla.

Mi duda es la siguiente, la tabla de eventos y la tabla de noticias se parecen mucho y no se si debería utilizar una sola tabla de contenido y diferenciar por tipo o hacer dos tablas, una para eventos y otra para noticias.

Tablas opción 1:
noticias (Tabla que almacena las noticias)
eventos (Tabla que almacena los eventos)
usuarios (Tabla que almacena los usuarios)
usuarios_noticias (Tabla que relaciona el id del usuario y el id de la noticia)
usuarios_eventos (Tabla que relaciona el id del usuario y el id del evento)

Tablas opción 2:
contenidos (Tabla que almacena el contenido y diferencia por el campo tipo: noticias o eventos)
usuarios (Tabla que almacena los usuarios)
usuarios_contenidos (Tabla que relaciona el id del usuario y el id del evento)

La primera opción me preocupa ya que tengo que tener varias tablas para relacionar los usuarios y podría ser complicado de manejar si los datos aumentan. Si luego quiero añadir una tercera tabla de por ejemplo, "documentos", debería añadir otra tabla para relacionar usuarios_documentos.

La segunda también me genera dudas ya que al estar todo en la misma tabla esa tabla puede crecer excesivamente y afectar al rendimiento de las consultas.

Por último comentar que utilizo el framework de programación Yii de PHP y mi base de datos es Innodb, no MyISAM.

Bueno, ahí está mi duda.

Cualquier comentaría será bien recibido.

Gracias de antemano y un saludo.