Je stocke divers détails utilisateur dans ma base de données MySQL. À l'origine, il a été mis en place dans diverses tables, ce qui signifie que les données sont liées aux UserIds et sont sorties via des appels parfois compliqués pour afficher et manipuler les données selon les besoins. Lors de la mise en place d'un nouveau système, il est presque logique de combiner toutes ces tables en une seule grande table de contenu connexe.
- Cela va-t-il être une aide ou un obstacle?
- Considérations de vitesse lors de l'appel, de la mise à jour ou de la recherche / manipulation?
Voici un exemple de certaines de mes structures de table:
- utilisateurs - UserId, nom d'utilisateur, email, mot de passe crypté, date d'enregistrement, ip
- user_details - données de cookie, nom, adresse, coordonnées, affiliation, données démographiques
- user_activity - contributions, dernière connexion, dernière consultation
- user_settings - paramètres d'affichage du profil
- user_interests - variables ciblables publicitaires
- user_levels - droits d'accès
- user_stats - hits, comptes
Edit: J'ai voté pour toutes les réponses jusqu'à présent, elles ont toutes des éléments qui répondent essentiellement à ma question.
La plupart des tables ont une relation 1: 1 qui était la principale raison de leur dénormalisation.
Y aura-t-il des problèmes si le tableau s'étend sur plus de 100 colonnes alors qu'une grande partie de ces cellules est susceptible de rester vide?