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

Hvordan gemmer man, håndterer ordrens samlede beløb i et ordrer, ordredetaljer skema?

Ja, det er normalt at gemme forudberegnede værdier, baseret på andre data i databasen, i en database. Men ikke nødvendigvis af den grund du nævner. Jeg har aldrig haft problemer med MAX_JOIN_SIZE .

Den vigtigste, og sandsynligvis eneste, grund til at gemme beregnede værdier er hastighed. Så du gør det for værdier, der ikke ændrer sig så ofte, og som kan bruges i forespørgsler, der bruger meget data og derfor kan være for langsomme, hvis du ikke brugte dem.

For eksempel:Hvis du vil vide gennemsnitsværdien af ​​alle ordrer i din database, ville forespørgslen være meget hurtigere, hvis du allerede har ordretotalerne.

Hvorfor og hvordan du opdaterer værdierne er helt op til dig. Men du skal være konsekvent omkring det . Hvis du bruger MVC-mønsteret, ville det give mening at integrere det i controlleren. Eller i enkle vendinger:Når der indsendes en formular, der kan ændre en af ​​værdierne, som den forudberegnede værdi er beregnet ud fra, skal du genberegne den.

Dette er en klar demonstration, hvor 'normalisering' ikke opretholdes helt. Det er ikke rigtig kønt, men nogle gange det værd. Du kan selvfølgelig argumentere for, at den beregnede værdi repræsenterer 'ny' information og derfor ikke krænker 'normalisering'.



  1. Transponering af dynamiske kolonner til rækker

  2. MySQL InnoDB:Forskellen mellem "TIL OPDATERING" og "LÅS I DELINGSMODUS"

  3. Opdater en databasepostkonto (SSMS)

  4. Sender kolonnenavn som parameter i MySQL