J'ai une table nommée ActivityRecording. Cette table contient actuellement 500 000 enregistrements. J'ai besoin d'ajouter beaucoup de nouvelles entrées qui se rapportent à la table d'enregistrement d'activité. La relation d'activité avec ces nouveaux champs de saisie est de 1 à 0,1. Donc, ce qui va se passer à l'écran, c'est quand l'utilisateur remplit les données ActivityRecording, il sera ensuite redirigé vers une nouvelle page et cette page affichera un formulaire basé sur l'entrée de l'utilisateur (depuis un service nommé dropdown) dans activityrecording . Il y aura 6 différents types de formulaire (chaque formulaire aura 7-8 entrées qui comprend des zones de texte de taille 5kb, des zones de texte et des cases à cocher). Ainsi, pour une activité, l'utilisateur enregistrant remplira un formulaire sur 6.structure de la base de données
Il y a deux façons je sais (il pourrait y avoir plus), je peux concevoir la structure de données:
Ajouter toutes les entrées de toutes ces 6 formes dans la table de activityrecording. Ainsi, les colonnes appartenant à 5 de ces formes seront nulles dans cette table, seules les colonnes appartenant à l'une des formes auront des valeurs
L'autre façon serait d'ajouter 6 nouvelles tables (une pour chaque formulaire) et d'ajouter 6 colonnes de clé étrangère à la table d'enregistrement d'activité. Donc, sur 6 clés étrangères, 5 sera nul et on pointera effectivement vers une table
Quelle approche est la meilleure conception de structure de données? Veuillez prendre en compte que le nombre de lignes dans ce tableau est de 500 000 et devrait augmenter à un rythme plus rapide maintenant.
la troisième approche sonne bien à fait, parce que j'aurait une séparation de mes activityrecording et formes. –
ouais c'est comme ça que je le ferais, après tout c'est un peu mvc, vous avez la vue séparée de la table si vous changez la vue, vous n'aurez rien à changer sur le modèle (table) –
Donc, si je fais une table séparée avec tous ces champs (de toutes les 6 formes), alors c'est un bon design car pour chaque ligne, je vais toujours avoir 80% de colonnes nulles. –