Problem z wyzwalaczami (trigerrami) – prośba o wytłumaczenie

0

Otóż mam pewien problem. Potrzebuję zrobić to zadanie w przeciągu 2 dni ale nie umiem robić triggerów (tzw. wyzwalaczy). Po stworzeniu bazy danych oraz tabel zacząłem szukać w internecie, myśleć jak mogę to zrobić i nic. Jeśli mógłby ktoś mi z tym pomóc będę wdzięczny.

Utwórz bazę danych klub siatkarski. W bazie powinny znaleźć się następujące tabele zawodnik(Imię, Nazwisko, Data urodzenia, Pozycja, Pensja, Poprzednik klub, Wiek), pozycja (id, nazwa), Mecz(Przeciwnik(nazwa), data, wynik). Każdy zawodnik w ramach meczu może zdobyć punkty, a na ich podstawie obliczana jest premia.

Do wykonania zadania użyj PHP (mysqli lub PDO), HTML’a, CSS’a i MySQL’a.

Utwórz wyzwalacz, który:

  • Oblicza wiek zawodnika i dodaje go do bazy danych zawodnik (atrybut wiek).
  • Oblicza premię zawodnika, zasada obliczania premii:
    • 10 punktów – 10% premii
    • 15 punktów – 15% premii
    • >=20 punktów – 25% premii
  • Po usunięciu z bazy danych zawodnika, zostaje dodany rekord do tabeli byli_zawodnicy (która zawiera imię, nazwisko i pozycję).
  • Wyświetla komunikat o treści za młody, gdy zawodnik ma mnie, niż 12 lat.
0

Za wdzięczność to można podsunąć linki ewentualnie poprawić już istniejący kod ;)
https://dev.mysql.com/doc/refman/5.5/en/trigger-syntax.html
Skoro jest data urodzenia w tabeli to moim zdaniem wiek jest nie potrzebny bo w php mozna go obliczyć w locie. A tak to trzeba co roku aktualizować. Ale skoro takie wymagania
Nie wiem jak zaprojektowałeś bazę. Ale jeśli zawodnik jest powiązany z inna tabelą kluczem obcym to go nie usuniesz. Robisz wtedy np flage IsDeleted.

0

Nie ja to wymyślałem + sam tego zbyt nie rozumiem. Stworzyłem tabelę bez żadnego łączenia z kluczami na id i dalej nie mogę ruszyć

1

Przechowywanie w tabeli obok kolumny DataUrodzenia równiez kolumny Wiek jest bezsensowne.
A trigger to jedynie na usunięcie. Pokaż jak próbowałeś...

0

Próbowałem poszukać czegoś w necie, czytałem na różnych stronach itp. Sam nie umiem nic z triggerów a nie mam na to za dużo czasu :x

0

To CSS już obsługuje triggery?
Dobrze, że rzuciłem frontend zanim było za późno.

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