Hola, en el proyecto de symfony que estoy haciendo (básicamente es un foro) y tengo un par de dudas.
La primera, tengo digamos que varios tipos de topics dependiendo del foro en el que estén, por ejemplo el formulario para un nuevo topic en el foro de coches:
- Titulo Tema
- Mensaje Tema
- Caballos motor coche
- Litros deposito
Para el foro de bicicletas:
- Titulo Tema
- Mensaje Tema
- Anchura rueda bicicleta
- Platos
Ahora mismo en una única entidad Topic tendría todos los campos, es decir:
- Titulo
- PrimerMensaje (es una entidad post)
- UltimoMensaje (es una entidad post, el ultimo realizado en el topic)
- Caballos
- LitrosDeposito
- AnchuraRuedaBici
- PlatosBici
Y claro me queda en la base de datos una única tabla topics con muchos campos a NULL debido a que dependiendo del foro hay campos que no necesito, me imagino que el peso de estos campos NULL no sera muy grande pero es posible que con muchos topics la cosa cambie, además supongo que aunque mínimo tendrá un coste al hacer consultas.
Como no estaba seguro de que fuese la mejor me puse a buscar y encontré esto:
Que si no entiendo mal seria hacer una superclase con todos los campos en común y luego hacer subclases que hereden de ella y añadan los campos que necesitan, quedando así:
Entidad Topic:
- Titulo
- PrimerMensaje (es una entidad post)
- UltimoMensaje (es una entidad post, el ultimo realizado en el topic)
Entidad CocheTopic:
- Caballos
- LitrosDeposito
Entidad BiciTopic:
- Caballos
- LitrosDeposito
La duda que tengo es si realmente es mejor así, me parece mas ortodoxo, pero tengo miedo por el tema de rendimiento:
Como lo veis mejor? esta ultima forma de hacerlo? perderé mucho rendimiento o merece la pena?
La segunda duda que tengo es que como veis en la entidad Topic, guardaría las entidades de tipo post primerMensaje y ultimoMensaje, que como las variables describen son el primer y el ultimo mensaje del tema. Mi duda es, realmente las necesito? necesitar las necesito, pero no se si seria mejor sacarlas haciendo una consulta mas (puede que trayéndolas cuando en un query solicite el topic) o dejarlas así, opiniones?
P.D.: Siento si he puesto demasiado tocho, era para que quedara claro lo que quiero y las dudas.