Guardo varios detalles de usuario en mi base de datos MySQL. Originalmente, se configuró en varias tablas, lo que significa que los datos están vinculados con UserIds y se generan a través de llamadas a veces complicadas para mostrar y manipular los datos según sea necesario. Al configurar un nuevo sistema, casi tiene sentido combinar todas estas tablas en una gran tabla de contenido relacionado.
- ¿Será esto una ayuda o un obstáculo?
- ¿Consideraciones de velocidad al llamar, actualizar o buscar / manipular?
Aquí hay un ejemplo de algunas de las estructuras de mi tabla:
- usuarios: ID de usuario, nombre de usuario, correo electrónico, contraseña cifrada, fecha de registro, ip
- user_details: datos de cookies, nombre, dirección, detalles de contacto, afiliación, datos demográficos
- user_activity - contribuciones, última conexión, última visita
- user_settings - configuración de visualización del perfil
- user_interests: variables a las que se puede orientar publicidad
- user_levels - derechos de acceso
- user_stats - hits, recuentos
Editar: He votado a favor de todas las respuestas hasta ahora, todas tienen elementos que esencialmente responden a mi pregunta.
La mayoría de las tablas tienen una relación 1: 1 que fue la principal razón para desnormalizarlas.
¿Habrá problemas si la tabla abarca más de 100 columnas cuando es probable que una gran parte de estas celdas permanezcan vacías?