sql >> Database >  >> RDS >> Mysql

suggestie voor het maken van een mysql-databasestructuur

Als ik het goed begrijp, log is voor het automatisch vastleggen van details van gebruikersacties, en profile bevat de gebruikersgegevens.

Voor het log tabel, lijkt u te proberen samengevatte gegevens vast te houden, die bij elke indiening van een formulier moeten worden bijgewerkt. Ik zou willen voorstellen dat je gewoon een nieuw logboekitem invoegt [bijv. log_id , log_date , profile_id , amount ] bij indiening en laat de aggregatie over aan het rapport. De deelname inschakelen vanuit log naar profile , we nemen profile_id . op .

Voor het profile tabel, moet u waarschijnlijk dubbele vermeldingen van first_name . toestaan |last_name |dob en probeer een andere manier te vinden om ze uniek te maken (ofwel door gebruik te maken van profile_id , of per e-mail, of paspoortnummer).

Ik weet niet zeker wat je bedoelingen zijn voor rowone , rowtwo , rowthree . Als je weet wat ze zijn, noem ze dan expliciet; als ze voor items zijn die een onbekend aantal keren worden herhaald, overweeg dan om ze naar een aparte tabel te verplaatsen (d.w.z. normaliseren).

Voor uw rapport schrijft u vervolgens een vraag om deel te nemen aan het log en profile tabellen samen, met aggregatie (d.w.z. GROUP BY met SUM en/of COUNT op de benodigde velden. "Aantal bezoeken" zou de COUNT . zijn van logboekvermeldingen voor dat profiel, is "Bedrag" de SUM van het amount .




  1. MariaDB GEBRUIKER() uitgelegd

  2. voeg twee verschillende tabellen samen en verwijder dubbele vermeldingen

  3. MySQL BEPERKEN en GEEN ACTIE

  4. Hoe u de eerste rij per groep kunt krijgen in PostgreSQL