Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem katalogu produktów
bumelang
post 16.03.2004, 13:46:54
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 30.11.2003

Ostrzeżenie: (0%)
-----


Witam,

Właściwie problem jest bardziej ogólny i temat powinien się nazywać: "Problem dziedziczenia w bazach danych" czy coś tym stylu, ale że potrzebuję tylko produkty sklepowe, to tak to zatytułowałem.

Chodzi o to, że w bazie przechowujemy produkty różnych kategorii, niech będą to np. okna i komputery. Dla okna przechowujemy cechy takie jak powierzchnia, kolor czy układ szyb a dla komputerów - wiadomo - procesor, ram, etc. Pomimo tych różnic są też cechy wspólne obydwu tych produktów - takie jak cena, stawka vat, obniżka ceny w %, itp. Żeby sprawę jeszcze bardziej pokomplikować zakładamy, że użytkownik może sobie np. wybrać kolor dla okna i procesor dla komputera.

Najprostsze rozwiązanie takiej relacji wygląda tak, że szykujemy 2 tabele zawierające cechy, które przechowują odpowiednio dane charakterystyczne wyłącznie dla każdej z 2 kategorii i trzecią, gdzie zapisany jest unikatowy ID produktu, cena i reszta cech dublujących się. Tyle, że potem w kodzie wszędzie straszy ciąg [php:1:a6f570f18d]<?php
...
case komputer:
...
case okno:
...
?>[/php:1:a6f570f18d] a co jeśli kategorii jest nie 2, ale 20?

W tym sensie wydaje mi się rozsądnym jedna tabela, której polem jest XML, w którym przechowywane sa cechy indywidualne produktu + rozrzucone gdzieś w katalogach aplikacji pliki konfiguracyjne, zawierające opis jak parsować poszególny typ czy jaka jest lista kolorów dla okna - taki engine byłby na pewno skalowalny, ale po 1. - trudno go napisać, po 2. ma on znaczący narzut, nawet jeśli założymy powiedzmy wykorzystanie natwynych elementów parsowania XML w PostgreSQL.

Chcciałbym w tym miejscu zapytać się Szanownych Forumowiczów, co sądzą o tym problemie i - ewentualnie - jak go rozwiązywali w swoich aplikacjach, jeśli już wcześniej się z nim zetknęli. Być może istnieją jakieś gotowe API w php lub po prostu prostsze metody rozwiązywania tego problemu.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 16:26