Mysql
 sql >> Base de données >  >> RDS >> Mysql

suggestion pour créer une structure de base de données mysql

Si j'ai bien compris, log sert à enregistrer automatiquement les détails des actions de l'utilisateur et le profile détient les détails de l'utilisateur.

Pour le log table, vous semblez essayer de conserver des données résumées, qui devraient être mises à jour à chaque soumission de formulaire. Je vous suggérerais simplement d'insérer une nouvelle entrée de journal [par ex. log_id , log_date , profile_id , amount ] lors de la soumission et laisser l'agrégation au rapport. Pour activer la jointure depuis log au profile , nous incluons profile_id .

Pour le profile table, vous devriez probablement autoriser les entrées en double de first_name |last_name |dob et essayez de trouver un autre moyen de les rendre uniques (soit en utilisant profile_id , ou par mail, ou n° de passeport).

Je ne suis pas sûr de vos intentions pour rowone , rowtwo , rowthree . Si vous savez ce qu'ils sont, alors nommez-les explicitement; s'il s'agit d'éléments qui se répètent un nombre de fois inconnu, envisagez de les déplacer vers un tableau séparé (c'est-à-dire de les normaliser).

Pour votre rapport, vous rédigerez ensuite une requête pour rejoindre le log et profile tables ensemble, avec agrégation (c'est-à-dire GROUP BY avec SUM et/ou COUNT sur les champs nécessaires. "Nombre de visites" serait le COUNT des entrées de journal pour ce profil, "Amount" serait le SUM du amount .