sql >> Base de Datos >  >> RDS >> Mysql

MYSQL:usuario - configuración de la tabla de detalles del perfil - mejores prácticas

Cosas a considerar con sus enfoques

Almacenamiento del perfil de usuario en la tabla de usuarios

  • Por lo general, este será el enfoque más rápido en términos de obtener los datos del perfil, aunque es posible que tenga muchos datos redundantes aquí (columnas que pueden no tener ninguna información).
  • Rápido (especialmente si solo extrae las columnas que necesita de la base de datos)
  • Datos desperdiciados
  • Más difícil de trabajar/mantener (posiblemente con interfaces como PHPMyAdmin)

Almacenamiento del perfil de usuario en User_Profile Table 1-1 relación con los usuarios

  • Aún debería ser bastante rápido con una unión y puede eliminar cierta redundancia de datos si los perfiles de usuario no se crean a menos que un usuario complete uno.
  • Más fácil de trabajar
  • Un poco más lento debido a la unión (o segunda consulta)

Almacenamiento del perfil de usuario como propiedades y valores en tablas

*es decir. Tabla para almacenar posibles opciones, tabla para almacenar user_id, option_id y value*

  • No se almacenan datos redundantes, todos los datos son relevantes
  • Método más normalizado
  • Recuperación y actualización de datos más lenta

Mi impresión es que la mayoría de los sitios web usan el segundo método y almacenan la información del perfil en una segunda tabla, es común que la mayoría de los sitios web más grandes desnormalicen la base de datos (twitter, facebook) para lograr un mayor rendimiento de lectura a expensas de un rendimiento de escritura más lento.

Creo que mantener la información del perfil en una segunda tabla es probablemente el camino a seguir cuando se buscan 50 000 registros. Para un rendimiento óptimo, desea mantener los datos que se escriben muy separados de los datos que se leen mucho para garantizar que la caché funcione de manera efectiva.