Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: klucze obce w relacji czterech tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
boya
Witam

Napisalem skrypt z wystwietlaniem kategorii, wg powiazan kluczy miedzy kategoriami. Kategorie sa 3 i listing i ich powiazanie dziala bez problemow. To samo dotyczy produktow ktore sa w drzewie kategorii...

Przyklad:

Kod
Rośliny doniczkowe  // kat 1
  Storczyki         // kat 2
    Białe           // kat 3
    Czarne          // kat 3
Kaktusy             // kat 1
  Rośliny ogrodowe
  Drzewa liściaste
  Krzewy liściaste


Cel to dynamiczne przenoszenie produktow podczas rotacji i przegrupowywaniu kategorii.

Jezeli chce przeniesc Doniczkowe->Stroczyki w Kaktusy, to nie ma problemu Storczyki wraz z podkategoriami i produktami przenosza sie do kaktusow. A robie to tak:

  1. UPDATE kategorie2 SET idk1='".$_POST['kategoria']."' WHERE id='".$_GET['id']."';
  2. // id = aktualnie zmieniana dowolna kategoria (drzew0 kat 2)




Problem pojawia sie gdy chce przeniesc Doniczkowe->Storczyki->Biale do np. Kaktusow, wtedy robie to tak:

  1. UPDATE kategorie3 SET idk2='".$_POST['kategoria']."' WHERE id='".$_GET['id']."' AND idk2='".$last."';
  2. // $last TO nic innego jakpoprzednia wartosc idk2


efektem jest poprawne przegrupowanie listy kategori lecz niepoprawne przesuniecie produktow, wszystkie produkty ktore mialy idk2 zmieniaja wartosc niezaleznie od tego co dalej jest w drzewie

schemat relacji i klucz obcych:


probowalem inaczej ukladac klucze obce ale nic nie pomoglo...
staralem sie pisac najjasniej jak moglem, jezeli ktos moze mi pomoc bede wdzieczny

Moze triggera napisac ?
dr_bonzo
Ja np. tego opisu po porstu nie rozumiem.

Jakie 3 kategorie? Ja tam widze drzewi 8miu kategorii.
Czemu sa trzy tabele z kategoriami? Rysunku tez nie kumam.

Te 3 tabele wyznaczaja 3poziomy drzewka kategorii?
splatch
Moja sugestia - może po prostu zastosuj drzewo a nie tanią protezę?
JaRoPHP
Tłumaczenia nie zrozumiałem...
Rysunek przeważnie powinien zobrazować problem i pomóc w jego zrozumieniu, ale niestety gdy oglądałem ów rysunek, postanowiłem przeczytać jeszcze raz opis smile.gif.

Nie rozumiem do końca pomysłu. Dla każdej kategorii chcesz mieć osobna tabelę? Chyba nie jest to najlepsze rozwiązanie.
Proponuję tak jak @splatch zastosować strukturę drzewa - tabelę, która będzie miała pola:
- id (klucz główny),
- parent_id (klucz obcy do id),
- opis.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.