Dodanie logiki do baz danych sql

Dodanie logiki do baz danych sql
C1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Cześć,
próbuje stworzyć bazę danych która w połączeniu z gui będzie odpowiedzialna za przetrzymywanie informacji o schronisku. Potrzebuję dodać logikę (nie mogę przyjąć do schroniska kolejnego psa/kota,jeżeli nie ma już miejsc). Dodatkowo, informacje o statusie (ilość karmy,wody,pozostałych miejsc) ma być wysyłana na dany email codziennie o X godzinie. W jaki sposób mogę to zrobić?

Sarrus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2512
3

Moim zdaniem dodawanie logiki do bazy danych na dłuższą metę nie jest dobrym pomysłem. Baza danych ma przechowywać dane, a logiką powinna się zajmować aplikacja. Zaawansowane mechanizmy dostępne w silnikach bazodanowych mają służyć utrzymywania integralności danych i nic więcej.

Jeżeli dodałbyś logikę do bazy, to potem się nie połapiesz co gdzie jest realizowane. Dodatkowo błąd z bazy danych dla mnie oznacza błąd aplikacji/konfiguracji bazy, więc zawsze jest obsługiwane tak samo. U Ciebie część z błędów byłyby normalne (brak miejsc). Obsługa błędów z czasem stanie się koszmarem, bo przykładowo część będziesz chciał wyświetlić użytkownikowi, a część nie.

MY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1107
0

Potwierdzam to o czym mówił @Sarrus Sam mam do czynienia w pracy z systemem gdzie dzieje się wielka magia na wyzwalaczach. Niektóre z nich są tak zamotane, że ciężko jest szybko dojść co do czego. Co prawda nie ja go konserwuję, ale czasem coś trzeba przeanalizować i to koszmar. Ja co prawda u siebie mam kilka wyzwalaczy, ale one są one proste i wykonują jedynie operację skopiowania rekordu w niektórych przypadkach do oddzielnej tabeli.

S2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
1

Trrigerów nie używa się do pisania logiki aplikacji. Od tego są funkcje i procedury bazodanowe, ewentualnie pakiety jeżeli używasz bazy Oracle.

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 127
1
Slayer22 napisał(a):

Trrigerów nie używa się do pisania logiki aplikacji. Od tego są funkcje i procedury bazodanowe, ewentualnie pakiety jeżeli używasz bazy Oracle.

@Mr.YaHooo dokładnie, równie dobrze można by narzekać że w Javie ktoś zaimplementował logikę w aspektach/interceptorach

  • Rejestracja: dni
  • Ostatnio: dni
0
student pro napisał(a):
Slayer22 napisał(a):

Trrigerów nie używa się do pisania logiki aplikacji. Od tego są funkcje i procedury bazodanowe, ewentualnie pakiety jeżeli używasz bazy Oracle.

@Mr.YaHooo dokładnie, równie dobrze można by narzekać że w Javie ktoś zaimplementował logikę w aspektach/interceptorach

Nie narzekam :) Pracowałem kiedyś z systemem gdzie logika była zaszyta na trrigerach i była to masakra, dochodziły mutacje i problem ze zmianą danych tak aby niektóre pola w tabeli się nie przeliczały. Zresztą @Clod11 pisał, że będzie to nowa baza danych a napisałem aby trigerrów nie używać do pisania logiki...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.