![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 372 Pomógł: 2 Dołączył: 10.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, próbuje zakodować funkcjonalność usuwania słówek z bazy danych.
Baza danych ma 3 tabele (problemem jest tu to że trzecia tabela to powiązanie pomiędzy dwoma poprzednimi tabelami i ją trzeba najpierw usunąć) Oto tabele:
i teraz żeby usunąć slowo_pl musze najpierw znaleźć id tego słowa w tabeli "tlumaczenie" usunąć rekord z tym id, a następnie znaleźć w tabeli slowo_pl to słowo i usunąć, próbuje wykonać to za pomocą następującego kodu (niestety nie wystepuje zaden błąd ale słowo nie usuwa się z bazy):
czy ktoś mógłby doradzić jak to zrobić, albo chociaż co tu skopałem, ze nie działa tak jak trzeba? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 372 Pomógł: 2 Dołączył: 10.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Joshima:
poszedłem za Twoimi słowami i zastosowałem kaskadowe usuwanie robiąc tak: alter table tlumaczenie add constraint foreign key(id_slowo_pl) REFERENCES slowo_pl(id) ON DELETE CASCADE; alter table tlumaczenie add constraint foreign key(id_slowo_ang) REFERENCES slowo_ang(id) ON DELETE CASCADE; czyli dokładnie to co napisał w ostatnim poście Cojack. Tyle ze wadą takiego rozwiązania jest to, że usuwa mi tylko słówko polskie oraz tłumaczenie, a więc rekordy z dwoch tabel powiązane ze sobą, nie usuwa natomiast słowka angielskiego, które to również powinno zostać usunięte. Dodatkowo nowe spojrzenie naświetlił thek, że odpowiedniki słówek mają różne znaczenia i tu tez problem jak to zakodować, żeby usunęło się własciwe tłumaczenie, oraz jak zmienić moj kod(ponizej) aby usuwało się nie tylko słówko polskie i powiązanie ( z tabeli tłumaczenie) ale tez słowko angielskie które jest z nim powiązane) Obecny kod:
Jedyne co mi przychodzi do głowy aby jednocześnie usunęło się słowko angielskie to dodać w formularzu pole, by użytkownik wpisał też słowko w języku angielskim a w kodzie dodać jeszcze jedno DELETE by usunąć to słowko. Wada jest taka, że przecież użytkownik nie zawsze zna słówko i jego odpowiednik w j. angielskim a więc rozwiązanie to nie jest dobre... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 16:04 |