• 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

+1 głos
958 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 (90,350 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 (90,350 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 2,388 wizyt
pytanie zadane 15 lipca 2018 w SQL, bazy danych przez voltex Obywatel (1,210 p.)
0 głosów
1 odpowiedź 337 wizyt
pytanie zadane 25 marca 2016 w SQL, bazy danych przez CzlowiekSkrypt Nałogowiec (26,340 p.)
0 głosów
0 odpowiedzi 339 wizyt
pytanie zadane 23 czerwca 2023 w SQL, bazy danych przez roger10 Nowicjusz (180 p.)

93,776 zapytań

142,732 odpowiedzi

323,384 komentarzy

63,379 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...