Igyekszem rövid és pontos lenni.
Vannak termékek, a termékeknek különböző változatai (1:n kapcsolat), több nyelven. A termékek és a változatok is bizonyos szempontok szerint csoportosíthatók, nevezzük tulajdonság-nak. Értelem szerűen amibe a termék be van sorolva abba a termék változat is, de fordítva nem. Egy termék/változat több tulajdonsággal is rendelkezhet. Vannak árak, több pénznemben is, a terméknek is és a változatoknak is, de a termék ára csak egy iránymutatás, a konkrét ár a változathoz van rendelve, és amitől csúf a dolog, h naponta más ár van. Az árakat előre töltik akár fél v. egy évre is. Töltik még azt is, h adott napon mennyi van belőle. Értelem szerűen egy termék változatot csak akkor lehet megvenni, ha (van ára) és (a mennyiség > mint amennyit szeretne a user) és (mindezt dátumtól dátumig) keresi. A keresésbe még bejönnek (esetek 90%-ban) a tulajdonságok is mint szűrési szempont.
Van még egy cifrázása a dolognak az a sorrend, ha a user nem ad meg sorrendet (pl. ár v. tulajdonság v. idő szerint) akkor vannak előre definiált sorrendek adott keresési / szűrési feltételekhez amit alkalmazni kell a találati listára.
Ebből a táblák kb. így:
[termékek]
[termék változatok]
[tulajdonságok]
[termék és termék változat X tulajdonságok] - ez egy kapcsolótábla (asszem ez a neve)
[napi árak és mennyiségek]
[sorrendek]
[sorrendek X tulajdonságok + egyéb feltételek] - szintén kapcsolótábla
A táblákban van némi redundancia is tervezve, h ne keljen mindenhez összeszorozni őket.