sql >> Database >  >> RDS >> Mysql

Django-code of MySQL-triggers

Er zijn veel manieren om het door u beschreven probleem op te lossen:

  • Toepassingslogica
    • Bekijk-specifieke logica -- Als het gedrag specifiek is voor een enkele weergave, breng dan de wijzigingen in de weergave aan.
    • Modelspecifieke logica -- Als het gedrag specifiek is voor een enkel model, dan de methode save() overschrijven voor het model.
  • Middleware-logica -- Als het gedrag betrekking heeft op meerdere modellen OF om een ​​bestaande applicatie moet worden gewikkeld, kunt u Django's pre-save/post-save signalen om extra gedrag toe te voegen zonder de applicatie zelf te wijzigen.
  • In database opgeslagen procedures -- Normaal gesproken een mogelijkheid, maar Django's ORM gebruikt ze niet. Niet overdraagbaar tussen databases.
  • Databasetriggers -- Niet overdraagbaar van de ene database naar de andere (of zelfs de ene versie van een database naar de volgende), maar stelt u in staat om gedeeld gedrag over meerdere (mogelijk niet-Django) applicaties te controleren.

Persoonlijk geef ik er de voorkeur aan om ofwel de methode save() te overschrijven, ofwel een Django-signaal te gebruiken. Het gebruik van view-specifieke logica kan je opvallen in grote applicaties met meerdere views van hetzelfde model(len).



  1. php/mysql postcode nabijheid zoeken

  2. Hoe ATAN() werkt in MariaDB

  3. Combineer SQLite Count() met GROUP BY om een ​​"Count"-kolom aan uw resultatenset toe te voegen

  4. Record geretourneerd door functie heeft kolommen aaneengeschakeld