Dodanie logiki do baz danych sql

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ć?

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.

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.

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.

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

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...

1 użytkowników online, w tym zalogowanych: 0, gości: 1