Buenas tardes.
Llevo días buscando la opción más óptima de diseñar una base de datos y me ha surgido una duda de la que no encuentro mucha documentación clara.
Creo una tabla con muchos campos o troceo los identificadores en varias tablas.
Por ejemplo:
- Opción 1, creando varias tablas con index y claves foráneas.
tabla usuarios
id_usuario int(5) PRIMARY AI
nombre char(50)
tipo smallint(2) INDEX
tabla usuarios_tipo
id smallint(2) PRIMARY AI
titulo char(50)
tabla usuarios_datos
id int(5) PRIMARY AI
id_usuario int(5) INDEX
direccion char(100)
municipio int(4) INDEX
provincia int(4) INDEX
email varchar(100)
telefono char(15)
tabla municipios:
id smallint(2) PRIMARY AI
titulo char(50)
tabla provincias:
id smallint(2) PRIMARY AI
titulo char(50)
- Opción 2, crear una tabla con todo en campos y me ahorro trabajar con JOIN a la hora de llamarlos:
tabla usuarios
id_usuario int(5) PRIMARY AI
nombre char(50)
tipo char(50)
direccion char(100)
municipio char(50)
provincia char(50)
email varchar(100)
telefono char(15)
A mi forma de ver, la opción 1 es más optimizada, permite indexación y relacionar tablas para update y delete y me parece más escalable, pero claro, para consultar habría que hacer varios JOINS para obtener todos los datos.
Me guataría saber confirmar que esto es así o saber qué motiva sus respuestas.
Gracias.
Un saludo.