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.