Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Kod Django lub wyzwalacze MySQL

Problem, który opisałeś, można rozwiązać na wiele sposobów:

  • Logika aplikacji
    • Logika charakterystyczna dla widoku -- Jeśli zachowanie dotyczy tylko jednego widoku, wprowadź zmiany w widoku.
    • Logika specyficzna dla modelu -- Jeśli zachowanie jest specyficzne dla pojedynczego modelu, to zastąp metodę save() dla modelu.
  • Logika oprogramowania pośredniego -- Jeśli zachowanie dotyczy wielu modeli LUB musi być owinięte wokół istniejącej aplikacji, możesz użyć sygnały przed/po zapisie aby dodać dodatkowe zachowania bez zmiany samej aplikacji.
  • Procedury przechowywane w bazie danych -- Normalnie taka możliwość, ale ORM Django ich nie używa. Nie można przenosić między bazami danych.
  • Wyzwalacze bazy danych -- Nie można przenosić z jednej bazy danych do drugiej (lub nawet jednej wersji bazy danych do drugiej), ale pozwala kontrolować wspólne zachowanie wielu (prawdopodobnie innych niż Django) aplikacji.

Osobiście wolę używać albo nadpisywania metody save(), albo używania sygnału Django. Korzystanie z logiki specyficznej dla widoku może przyciągnąć Cię w dużych aplikacjach z wieloma widokami tego samego modelu(ów).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Usuń zduplikowane wiersze, które mają tę samą wartość kolumny

  2. Błąd pojawia się w sql podczas próby dodania wielu kluczy obcych

  3. Django ustawi silnik pamięci masowej i domyślny zestaw znaków

  4. 10 przydatnych wskazówek dotyczących dostrajania wydajności MySQL

  5. Jak przechowywać nazwę pliku w bazie danych wraz z innymi informacjami podczas przesyłania obrazu na serwer za pomocą PHP?