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. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 30.11.2003 Ostrzeżenie: (0%)
|
Mógłbym zadać pytanie Panu moderatorowi, który pozostał anonimem a przeniósł mojego posta z php Pro na php? Którego z założeń: "strategia pisania aplikacji, metoda rozwoju i podnoszenia elastyczności" nie spełnia mój post? Bynajmniej nie czuję się urażony, tylko szczerze pytam na przyszłość, bo widywałem na Pro posty tego pokroju i dlatego tam to wrzuciłem, a Pan moderator się niestety nie podpisał pod swoim dziełem.
|
|
|
|
bumelang Problem katalogu produktów 16.03.2004, 13:46:54
FiDO Chcialbym powrocic do tego problemu, gdyz niedlugo... 18.10.2004, 00:11:25
acztery a ja sobie wymyśliłęm coś takiego: ! table
id... 8.03.2006, 18:17:19
tort Wiele zależy od systemu bazodanowego. MySQL jest m... 8.03.2006, 19:27:30 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 05:33 |