Mira, por un lado aclaremos que lo que dices:
Cita: Pero por otro lado no usaria left joins que creo que no suele ser bueno usarse.
es obviamente un concepto que no has sacado de un manual.
No. LEFT JOIN no es algo que "no suele ser bueno", sino que es, en muchas ocasiones, la única solución de buena performance. Eso lo puedes ver si exploras un poco el tipo de consultas de las redes sociales.
Y es así por la razón más simple de todas: Normalmente un comentario puede tener asociados videos, fotos u otras cosas, pero precisamente eso es
opcional, y no
mandatorio. AL ser opcional y darse que no exista en un comentario, ningún objeto asociado, si la consulta la haces sin el LEFT JOIN todos esos comentarios simplemente no aparecerán.
¿Se entiende?
Bien, como evidentemente recién estás explorando el tema de este tipo de diseño de bases de datos, te muestro cómo es el esquema básico de una red social, donde los usuarios pueden poner diversos tipos de objetos relacionados a los comentarios (como el muro de FB):
Como puedes apreciar, efectivamente cada tipo de objeto tiene su propia tabla. No le des muchas vueltas, más allá de diferencias funcionales, eso no variará entre distintas SN.
Más o menos así opera la cosa.