[PHP][MySQL]Mysql jak sprawdzic ID rekordów ktore usunołem |
[PHP][MySQL]Mysql jak sprawdzic ID rekordów ktore usunołem |
1.06.2013, 19:25:28
Post
#1
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 13.04.2010 Ostrzeżenie: (0%) |
Pisze forum i mam tabele kategorie i gdy chce usunac kategorie automatycznie usuwam wszystkie dzialy bo tabele sa polaczone. I pojawia sie problem skad wziasc id dzialow ktore usunolem bo chce przy okazji usunac wszystkie tematy ktore do dzialu należa
|
|
|
1.06.2013, 19:48:11
Post
#2
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) |
W MySQLu jest coś tak genialnego jak więzy integralności - powinieneś tym się zainteresować. Już na etapie projektowania bazy nadajesz takie więzy i później właśnie podczas usuwania głównego forum - automatycznie usuwa Ci tematy.
PS. Jeśli nic nie znajdziesz pod hasłem "więzy integralności" to spróbuj pod hasłem "klucze obce mysql" Jednak jeśli chodzi o Twój problem to proponuje coś w stylu: (ps. fajnie jakbyś takie usuwanie oparł o transakcje w mysql - poczytaj o tym);
PS. Kod pisany z palca, przepraszam za literówki w kodzie ;-) PS2. Kod pisany luźnie - musisz go dostosować do swoich potrzeb. Nazwy kolumn, nazwy tabel, itd pisałem na domysł. Ten post edytował wujek2009 1.06.2013, 19:50:15 |
|
|
1.06.2013, 20:32:05
Post
#3
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 13.04.2010 Ostrzeżenie: (0%) |
Do kluczów obcych zawsze musze dodawać tabele dodatkową?
Klucze obce sie sprawdzą przy schemacie takim ze usuwam 1 kategorie to usuwają się : dzialy, tematy ktore są w działach, i posty ktore sa w temacie. Wychodza 3 dodatkowe tabele przy czyms takim. Jakbym mial kontrolowac tranzakcje to nie za duzo zapytan bede robic do bazy aby pobierac dane i nie bedzie podobny schemat to co napisałeś? |
|
|
2.06.2013, 06:08:16
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Klucze obce to integralna część tabel. Nie musisz nic więcej tworzyć, dajesz tylko ON DELETE CASCADE czy co tam chcesz.
-------------------- |
|
|
2.06.2013, 09:55:58
Post
#5
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) |
Udostępniam Ci mój przykład związany z kluczami obcymi. Dwie tabele:
a) tabela użytkowników (identyfikator to kolumna "id") tabela sesji (sesji dla danego użytkownika = zwróć uwagę na kolumnę "user_id" - łączy się z tabela użytkowników dla kolumny "id") Tabela użytkowników
Tabela sesji
Zapis: Kod foreign key (user_id) references users (id) on update cascade on delete cascade można tłumaczyć: ~ kolumnę "user_id" (z tabeli sessions) połącz z tabelą "users" i odwołaj się do kolumny "id" (z tabeli "users") w przypadku: a) aktualizacji rekordu ("on update"), usunięcia rekordu ("on delete") I gdybyś zastosował takie rozwiązanie w swoim projekcie to ograniczyłbyś zapytania typu pobierz ID działów, usuń tematy z danego działu, itd. Ten post edytował wujek2009 2.06.2013, 09:58:07 |
|
|
2.06.2013, 10:52:07
Post
#6
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 13.04.2010 Ostrzeżenie: (0%) |
Miałem klucze obce na zajecia z baz danych ale jakos nie przywiazalem do tego uwagi. Narazie tabele mam zrobiona z phpmyadmina i wypelniana byle czym wiec moge sobie modyfikowac dowolnie.
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 14:46 |