Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/03/2016, 07:14
Avatar de Tollelle
Tollelle
 
Fecha de Ingreso: enero-2005
Mensajes: 64
Antigüedad: 19 años, 10 meses
Puntos: 0
Diseño: Muchos campos en una tabla o varias tablas unidas por JOIN

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.