Mysql
 sql >> Database >  >> RDS >> Mysql

suggerimento per la creazione di una struttura di database mysql

Se ho capito bene, log serve per registrare automaticamente i dettagli delle azioni dell'utente e il profile conserva i dettagli dell'utente.

Per il log tabella, sembra che tu stia tentando di conservare dati riepilogati, che dovrebbero essere aggiornati ad ogni invio di modulo. Ti suggerirei di inserire una nuova voce di registro [es. log_id , log_date , profile_id , amount ] alla presentazione e lasciare l'aggregazione alla relazione. Per abilitare il join da log al profile , includiamo profile_id .

Per il profile tabella, dovresti probabilmente consentire voci duplicate di first_name |last_name |dob e prova a trovare un altro modo per renderli unici (usando profile_id , o via e-mail, o passaporto n.).

Non sono sicuro delle tue intenzioni per rowone , rowtwo , rowthree . Se sai cosa sono, allora nominali esplicitamente; se sono per elementi che si ripetono un numero imprecisato di volte, considera di spostarli in una tabella separata (ad es. Normalizza).

Per il tuo rapporto, scriverai quindi una query per unirti al log e profile tabelle insieme, con aggregazione (es. GROUP BY con SUM e/o COUNT sui campi necessari. "Conteggio visite" sarebbe il COUNT di voci di registro per quel profilo, "Amount" sarebbe il SUM dell'amount .