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

Django-kode eller MySQL-udløsere

Der er mange måder at løse det problem, du har beskrevet:

  • Applikationslogik
    • Visningsspecifik logik -- Hvis adfærden er specifik for en enkelt visning, skal du placere ændringerne i visningen.
    • Modelspecifik logik -- Hvis adfærden er specifik for en enkelt model, så tilsidesæt save()-metoden for modellen.
  • Middleware-logik -- Hvis adfærden vedrører flere modeller ELLER skal pakkes rundt om en eksisterende applikation, kan du bruge Djangos før-gem/efter-gem-signaler for at tilføje yderligere adfærd uden at ændre selve applikationen.
  • Databaselagrede procedurer -- Normalt en mulighed, men Django's ORM bruger dem ikke. Ikke bærbar på tværs af databaser.
  • Databasetriggere -- Kan ikke overføres fra en database til en anden (eller endda fra en version af en database til den næste), men giver dig mulighed for at kontrollere delt adfærd på tværs af flere (muligvis ikke-Django) applikationer.

Personligt foretrækker jeg enten at tilsidesætte save()-metoden eller bruge et Django-signal. Brug af visningsspecifik logik kan fange dig ud i store applikationer med flere visninger af samme model(er).



  1. Hvordan konverteres MySQL-tid til UNIX-tidsstempel ved hjælp af PHP?

  2. Få poster med maks. værdi for hver gruppe af grupperede SQL-resultater

  3. Adgang nægtet for brugeren 'root'@'localhost' med PHPMyAdmin

  4. Sådan returneres en liste over tilgængelige tegnsæt i MySQL