![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 16.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie
Właśnie tworzę sklep internetowy i nie wiem jaką bazę danych utworzyć. Zakładam, że nie wiem kto będzie korzystał ze sklepu także muszę wziąć pod uwagę, że w sklepie będzie powiedzmy 200 000 różnych produktów w 100 kategoriach (czysto teoretycznie) i problem rodzi się w momencie dodawania produktów do bazy, bo przecież "Laptopy" mają inne cechy niż "Aparaty cyfrowe". Czytając forum doszedłem do wniosku, że można by zrobić taką strukturę: Cytat TABELA PRODUKTY produkt_id kategoria_id produkt_nazwa produkt_cena produkt_opis i ewentualnie jakieś cechy wspólne TABELA CECHY cecha_id kategoria_id cecha_nazwa cecha_typ_danych TABELA CECHY_WARTOSCI wartosc_id cecha_id produkt_id wartosc_napis (string[255]) wartosc_liczba (real) TABELA KATEGORIE kategoria_id kategoria_nazwa Wydaje mi się (ale nie jestem tego pewien), że to rozwiązanie zda egzamin z punktu widzenia elastyczności sklepu ale nie wiem czy będzie to rozwiązanie wydajne przy większej ilości kategorii (z różnymi cechami). Powiedzmy, że średnio 1 kategoria dla sklepu ze sprzętem elektronicznym ma 15 cech. Gdy produktów będzie 100 000 to w tabeli CECHY_WARTOSCI pojawi się 100 000*15=1 500 000 rekordów i tutaj już zaczyna się robić problem bo nie wiem czy baza PostgreSQL lub MySQL (raczej będę używał PostgreSQL) poradzi sobie z taką dużą ilością danych przy bardzo skomplikowanych zapytaniach (join)? Dlatego myślałem czy nie warto zrobić sklepu najpierw planując jakie będą kategorie i dla każdej kategorii stworzyć osobną tabelę z cechami (np 15 kolumnową). To może i byłoby wydajniejsze ale z drugiej strony posiadanie 100 tabeli w bazie (a może więcej) i tworzenie ich dla każdej nowej kategorii wydaj mi się bez sensu. Czekam na jakieś kreatywne sugestie ![]() Pozdrawiam i Wesołych Świąt |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Uniwersalnego sposobu wydaje mi się, że nie ma
![]() id serial, typ_produktu_id int, produkt_id int, f1 text, f2 text, f3 int, f4 int, f5 int, f6 int, f7 float, f8 float, f9 float, f10 float, f11 bool, f12 bool, f13 bool, f14 bool minusem tego rozwiązania jest to, że ilość parametrów opisujących produkt jest ograniczona i do tego jest ograniczona liczba typów, chodź w sumie można zrobić też dużą ilość varchar i wykorzystywać zamiast float czy int czy nawet bool ![]() -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 21:30 |