Kezdőoldal » Számítástechnika » Weblapkészítés » Hogyan strukturáljak egy...

Hogyan strukturáljak egy webáruház adatmodelleit adatbázisokban (vagy MongoDB-ben)?

Figyelt kérdés

Helló.

Főleg olyan fullstack webprogramozók válaszát várnám akik otthon vannak a programozásban és az adatbázis modellek kiépítésében.

Röviden arról volna szó, hogy megkeresett egy kliens azzal, hogy szeretne egy jófogás.hu-hoz hasonló siteot 0-ról viszont teljesen átgondolva.


Míg egy webáruház esetén a kategóriák hierarchikusan szerepelnek kategória/alkategória szinten (pl Jármü->Autó->Tipus) addig az ügyfelem azt találta ki, hogy egy eladó létrehozhat egy terméknek egy adatlapot és ő hoz létre és ad hozzá ehhez az adatlaphoz saját megnevezésű kategóriákat. Emiatt a kategóriák relatívak és újrafelhasználhatónak kell lennie.


Hogy illusztráljam ezt a problémát képzeljünk el két termék adatlapot:


Adatlap 1 Adatlap2

-Jármü-Igen -Telefontok-Igen

-Típus-Autó -Típus:Soft-Tok


Ebben az esetben a relatív azt jelenti, hogy az egyedüli kapcsolat a két termék között az a Típus kategória (lehetséges az is hogy a kategóriáknak ugyan az az értékük ebben az esetben kategória és érték a kapcsolat). Az újrahasználhatóság pedig arra vonatkozik hogy a Típus kategória szerepel mindkét adatlap esetében.


Azt, hogy melyik adatlap releváns megjelenítésre az elsősorban az értékek közötti különbség adná meg vagy ha a vásárló aki keres a termékre mégtöbb kategóriát és értéket adna meg keresés során ezzel leszükitve a találatot.

Egy példa erre is: Ha valaki a Típus kategóriát akarja listázni akkor listázódna mindkét termék. Ha valaki a típus=autót akkor csak az első termék, ha valaki a jármű kategóriát adná meg csak az első.


A kérdésem amiben tanácstalan vagyok, hogy hogy kellene ezt a struktúrát felépíteni?

Milyen adatbázist volna érdemes a struktúrához használni, hogy a CRUD műveletek illetve a keresés gyorsan lefussanak, mivel jelen esetben nagyon sok az összekapcsolódó elem.

A kliens MongoDB-t szeretne és ehhez ki is dolgoztam az ötletet, de szerintem sok adat esetén lassú lenne.

Lényegében annyi, hogy MongoDB-ben volna 2 collectionom egy Kategória és egy Termék Collection. A kategória collectionben volna minden hozzáadott kategória tárolva dokumentumként (1- kategória-1 dokumentum) és a dokumentumban lineklve volna a Termék Collectionből az a termék ahol szerepel az a bizonyos kategória (1 Kategória - Több Termék). A linkelés miatt ezután a Termék collectionből megkaphatnánk specifikus termékek dokumentumát és ott szerepelne az összes kategória és érték amibe 1 termék tartozik, ezeket joinolnám, ha több kategória és kritérium volna, majd kilistáznánk az eredményeket. Viszont ez csak a kategóriákra működne az értékeknél is kellene hasonlót csinálni vagy nem igazán látom át ennek a struktúráját.


Elnézést a hosszú kérdésért és köszönöm annak a türelmét aki végigolvasta és esetleg válaszol. Szép napot!



2020. okt. 28. 14:22
 1/3 anonim ***** válasza:
59%

Szia!

Sokkal több táblára lesz szükséged, amiben az egyedi adatokat is tárolod...

Sokkal egyszerűbb lenne MySQL -el, MongoDB -vel elég bonyolult lesz SubQuery -vel gyorsan működő szeretetet létrehozni.

2020. okt. 29. 09:13
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
Én is hasonlóra gondoltam, a kliens kérése a Mongo. Amúgy kiváncsiságból, te milyen táblákra/adattagokra gondoltál és milyen kötödésekkel?
2020. okt. 30. 06:45
 3/3 anonim ***** válasza:

Én szét bontanám, ahol az egyedi mezőket lehet meghatározni,

és hozzá adni ez melyik kategória, termék típushoz tartozik.

Aztán lenne egy tábla amiben az értékek szövegei vannak.

Ezt az előzőhöz kapcsolom, ID -ja alapján.

Majd egy 3. ami az előző kettő kombinációja, és az adott terméket is tartalmazza.

Tehát az első tábla a tartalmazza a kategória és típushoz külön-külön a csoportokat, mint pl. Telefon márka, Autó márka.

A második tábla tartalmazza ezek értékeit, konkrét márkákat az előző ID -jával.

A harmadik tábla pedig a tulajdonság csoport, és értékét, ha egyedi érték akkor annak egyedi értékét.

Pl. Autónál, nem viszed fel 0 -tól 900 ezereig, mennyit ment, és kiválaszthatja, hanem megadja a számként.

Ugyan így lehetnek szöveges mezők, így ezt is külön kell tárolni...

Én az utolsót is szét szedném 3 -ba, amit típusként tárolok az adott értéknél.

Tehát lenne választós, bevitel szám, és bevitel szöveg.

ID alapján gyors a keresés, számok közt is viszonylag gyorsan lehet keresni, de szöveg már lassabb, főleg ha nem pontos egyezésről van szó.

2020. okt. 30. 09:35
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!