• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Parametry produktów - Json czy Tabele MySQL

VPS Starter Arubacloud
+1 głos
462 wizyt
pytanie zadane 3 kwietnia 2021 w SQL, bazy danych przez Renzov Obywatel (1,220 p.)
Dobry wieczór wszystkim,

W ramach ćwiczeń mam zamiar zrobić sobie prostego klona Allegro. Podczas planowania napotkałem pewien drobny problem.

W projekcie będzie możliwość filtrowania produktów. Każda kategoria będzie posiadać filtry odpowiednie do niej (W sensie w kategorii telefony można filtrować pamięcią, kolorami, modelem etc. W zakładce samochody, proponowane filtry to będą np. ilość koni, czy auto powypadkowe etc).

I tutaj moje pytanie. Jak "zaprojektować" filtry?

Pierwszym moim pomysłem jest stworzenie 3 tabel.

- Pierwsza tabela zawiera nazwę kategorii [Name]

- Druga tabela będzie zawierać nazwę parametru, id kategorii [name] [category_id]

- Trzecia tabela będzie zawierać id parametru, wartość oraz id produktu do którego jest przypisany

Nie wiem tylko jak by było z wydajnością (Pytanie czysto teoretyczne). Jeśli dajmy na to mam 20 000 000 produktów, każdy posiada 50 parametrów, daje to już 10 00 000 000 rekordów w bazie

Drugim zamysłem jest użycie Firebase'a i baza w formie drzewka

2 odpowiedzi

+1 głos
odpowiedź 3 kwietnia 2021 przez SzkolnyAdmin Szeryf (86,280 p.)
Ale dlaczego przy 20 tys.produktów z 50 parametrami każdy masz mieć 10 mln rekordów? Relacyjna baza tak nie działa. Po to są relacje,abyś właśnie nie miał 10 mln rekordów.
komentarz 3 kwietnia 2021 przez Renzov Obywatel (1,220 p.)
Nie wiem czy dobrze wytłumaczyłem, ale chodziło mi o to, że każdy parametr to nowy record w bazie danych.

- Id productu

- Id parametru

- Wlaściwośc

Gdy jakiś obiekt ma 50 paremtrów jak np. kolor, pamięć, etc daje to już 50 recordów w bazie danych. 1 000 produktów, to już 50 000 recordów
2
komentarz 3 kwietnia 2021 przez SzkolnyAdmin Szeryf (86,280 p.)
A nie będą się one powtarzać? Nie lepiej do produktu przypisać parametry z tabeli słownikowej? W ten sposób masz 1 produkt = 1 rekord.
+1 głos
odpowiedź 4 kwietnia 2021 przez mordimer Mądrala (5,720 p.)
Ratują cie tu indexy, partycje albo elastic search ... I raczej nie da sie inaczej bo jak dobrze rozumiem tu nie chodzi o to zeby tylko przechowywac jakos te dane jak najmniejszym kosztem tylko również wyszukiwać wydajnie po tych paramtetrach. A tak z ciekawości szkolnyadmin czym jest dla ciebie ta tabela słownikowa i jak ona by miala wygladac ? Chcialbys laczyc kategorie z parametrami w jakims indexie fulltextowym ?

Podobne pytania

0 głosów
0 odpowiedzi 1,948 wizyt
pytanie zadane 15 lipca 2018 w SQL, bazy danych przez voltex Obywatel (1,210 p.)
0 głosów
1 odpowiedź 199 wizyt
pytanie zadane 25 marca 2016 w SQL, bazy danych przez CzlowiekSkrypt Nałogowiec (26,340 p.)
0 głosów
0 odpowiedzi 58 wizyt
pytanie zadane 23 czerwca 2023 w SQL, bazy danych przez roger10 Nowicjusz (140 p.)

92,452 zapytań

141,262 odpowiedzi

319,079 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...