![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 0 Dołączył: 22.09.2002 Skąd: Gorzów Wlkp Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam problem natury teoretycznej. Jak rozwiazac nastepujacy problem: - Jest w pewnej bazie tabela ktora reprezentuje produkty o np. takiej strukturze: - ProduktID - GrupaTowarowaID - Nazwa - itd... i teraz miedzy produktami moze zajsc relacja taka ze - jeden produkt powiazany jest z wieloma innymi, ale inny produkt moze byc powiazany rowniez w wieloma innymi rowniez z pierwszym produktem ktory ma juz powiazania: ja rozwiazanie widze w stworzeniu tabeli ktora bedzie przechowywala klucze produktow ktore sie ze soba wiaza: Przykladowa struktuta takiej tabeli: - ProduktID - ProduktID2 i teraz jak mamy jakies produkty to bedzie to wygladalo tak ProduktID | ProduktID2 1 | 2 1 | 3 1 | 4 1 | 5 1 | 15 15 | 1 15 | 2 15 | 3 2 | 1 2 | 15 I juz widzimy ze 1 polaczone jest z 15, a pozniej 15 z 1 -> i tutaj juz mamy redundancje danych - za to produkt o ID = 2 polaczony jest z produktami o ID = 1 i 15 gdzie wyzej 15 i 1 byla juz polaczona z 2... Jak uniknac tego problemu? Z gory dzieki za kazda podpowiedz. Ps. Sprawdzanie czy cos juz jest w jednej ze stron powiazania nie wchodzi w gre - chyba ze na poziomie bazy danych w jakis prosty i optymalny sposob - tak zeby szybko dalo sie wyciagnac dane np. w taki sposob:
Pozdrawiam anas |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 24.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj wszystko w jednej tabeli:
- ProduktID - GrupaTowarowaID - Nazwa - Powiązanie ( ProduktID2, ProdukktID5, itd ) np. tabela wypełniona danymi:
Tworzysz rejestr zaladowanych produktów. Pobierasz ProduktID = 1, s a następnie powiazane do niego produkty, czyli dzielisz Powiazanie na tablice (np. explode( ',', $Powiazanie)). Sprawdzasz w rejestrze czy produkt był juz pobrany, jeśli nie był jeszcze załadowany to go ładujesz, a jeśli był to przechodzisz dalej czyli robisz od nowa, pobierasz ProduktID = $Powiazanie[1]... aż dotąd gdy nie będzie już produktów do pobrania. Nie wiem czy to dobre rozwiązanie, ale napewno coś sam wymyślisz ;-) Ten post edytował dag 22.10.2004, 15:51:59 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 01:47 |