sql >> Databasteknik >  >> RDS >> Mysql

Django-kod eller MySQL-utlösare

Det finns många sätt att lösa problemet du har beskrivit:

  • Applikationslogik
    • Visningsspecifik logik -- Om beteendet är specifikt för en enskild vy, lägg sedan in ändringarna i vyn.
    • Modellspecifik logik -- Om beteendet är specifikt för en enskild modell, åsidosätt metoden save() för modellen.
  • Middleware Logic -- Om beteendet är relaterat till flera modeller ELLER behöver lindas runt en befintlig applikation kan du använda Djangos för-spara/efter-spara-signaler för att lägga till ytterligare beteenden utan att ändra själva programmet.
  • Lagrade databasprocedurer -- Normalt en möjlighet, men Djangos ORM använder dem inte. Ej portabel över databaser.
  • Databasutlösare -- Inte portabel från en databas till en annan (eller ens en version av en databas till nästa), men låter dig kontrollera delat beteende över flera (möjligen icke-Django) applikationer.

Personligen föredrar jag att antingen åsidosätta save()-metoden eller använda en Django-signal. Genom att använda vyspecifik logik kan du fånga dig på stora applikationer med flera vyer av samma modell(er).



  1. mysql GROUP_CONCAT DISTINCT flera kolumner

  2. Hur kan jag hämta en lista med parametrar från en lagrad procedur i SQL Server

  3. Skillnad mellan BYTE och CHAR i kolumndatatyper

  4. Chart.js - Hämta data från databasen med mysql och php