Prijava na forum:
Ime:
Lozinka:
Prijavi me trajno:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:

ConQUIZtador
nazadnapred
Korisnici koji su trenutno na forumu 0 članova i 1 gost pregledaju ovu temu.


Tema za pitanja
o SMF forumu, phpBB2 i phpBB3 forumu, Wordpress i Joomla CMS sistemima!

Za vecinu drugih pitanja nacicete odgovor citajuci Top teme!

Idi dole
Stranice:
1 2 [Sve]
Počni novu temu Nova anketa Odgovor Štampaj Dodaj temu u favorite Pogledajte svoje poruke u temi
Tema: Problem pri konstruisanju sql baze za online shop  (Pročitano 10261 puta)
05. Nov 2015, 15:56:02
Ucesnik diskusija


Zodijak Aquarius
Pol Muškarac
Poruke 73
Zastava Niš
Browser
Chrome 46.0.2490.80
mob
LG L90
Da li neko može da mi kaže kako da konstruišem bazu tako da jedan isti produkt ima nekoliko različitih verzija u odnosu na boju? To bi podrazumevalo da kada korisnik izabere ponuđenu boju, da se slika produkta promeni. Produkt A bi mogao da bude žut, crven i crn i samim tim ima 3 različite verzije, odnosno 3 sličice, ali isti ID. Kao na ovom sajtu http://www.wardow.com/business-laptop?manufacturer=Piquadro . Recimo, imao bih tabelu produkti koja je sačinjena od kolona id, ime, boja_id, veličina, tip_id, slika, kao glavnu. Pored nje bi išla tabela tip sa id i imenom kao kolonama i tabela boja koja bi imala iste kolone. Šta bih još morao da ubacim ili odvojim? Hvala unapred.
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Poznata licnost


Liberté, égalité, fraternité!

Zodijak Aquarius
Pol Muškarac
Poruke 4891
Zastava Vozdovac - Republika
OS
Windows 7
Browser
Chrome 46.0.2490.80
mob
Samsung S7
Moras da normalizujes bazu podataka. Da ne pominjem to da je boja samo jedan od atributa koje proizvod moze da ima. Sta ako ti sutra dodje zahtev da predmet mora da ima jos neke atribute i da pritom jos zelis da pretrazujes proizvode po to atributu. To se jos dodadtno komplikuje ako imas check box na sajtu pa das mogucnost da neko trazi i crvenu i zutu boju.

Imas dva osnovna puta. Prvi je da napravis tabelu svih boja koje postoje. Onda da napravis posebnu tabelu takozvanu medjutabelu koja bi definisala ProizvodId, BojaId, PutanjaDoSlike (naziv slike).

Drugi put je da napravis generalnu tabelu svih mogucih atributa i onda ih spojish preko zajednicke medjutabele tipa

ProizvodId, AttributId.

U svakom slucaju moras prilikom dizajniranja baze (modela) da budes jako pazljiv jer ce te jebati to kasnije ako nisi unpred predvideo scenarije. Ok, ovo se mozda malo razilazi sa Agilnim pristupom savremenog principa vodjenja projekta, ali ipak, dizajn baze je drugi po redu po vaznosti od dizajna biznis modela na srednjem sloju aplikacije (multi layer design)

« Poslednja izmena: 05. Nov 2015, 17:35:55 od bluesoniq »
IP sačuvana
social share
Pogledaj profil WWW Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Moderator
Legenda foruma


Zodijak Taurus
Pol Muškarac
Poruke 31625
Zastava Beograd
OS
Windows
Browser
Chrome 46.0.2490.80
mob
Nokia 6120
Upravo tako kako je rekao čovek iznad...

Generalno treba da izbegneš ponavljanje podataka gde god je to moguće, zato se i rešava tako
IP sačuvana
social share
Pogledaj profil WWW
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Ucesnik diskusija


Zodijak Aquarius
Pol Muškarac
Poruke 73
Zastava Niš
OS
Windows 7
Browser
Chrome 46.0.2490.80
mob
LG L90
Hvala puno na iscrpnom objašnjenju. Smile Od svega što znam, mislim da sam najveći početnik što se tiče baza. Ako sam dobro razumeo, to bi otprilike ovako izgledalo: http://prntscr.com/8zgxln
« Poslednja izmena: 05. Nov 2015, 22:24:34 od Dooxxx »
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Poznata licnost


Liberté, égalité, fraternité!

Zodijak Aquarius
Pol Muškarac
Poruke 4891
Zastava Vozdovac - Republika
OS
Windows 7
Browser
Chrome 46.0.2490.80
mob
Samsung S7
Nije lose. Samo bih ja promenio u nvarchar. E jos ima jedna cakica, ako hoces da pratish istoriju cena, onda mozda razmisliti o posebnoj tabeli za cene, sa sve datumom promene, staracena, datum, novacena.

Cena float? mozda?

decimal 10, 0   sta ako imas 50 centi ili sl?

« Poslednja izmena: 05. Nov 2015, 22:31:30 od bluesoniq »
IP sačuvana
social share
Pogledaj profil WWW Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Ucesnik diskusija


Zodijak Aquarius
Pol Muškarac
Poruke 73
Zastava Niš
OS
Windows 7
Browser
Chrome 46.0.2490.80
mob
LG L90
Meni je bitno da sam na pravom putu Wink U principu bi bile zaokružene cifre ali sada kada bolje razmislim, mislim da bi moglo da se ubaci i nešto na foru 59.99 i slično. Znači float. Zanima me još jedna bitna stavka. Pošto bih filtrirao podatke, kakav bi bio sql query s obzirom na povezanost tabela. Back-end radim u PHP-u. Ono što meni pada na pamet je:
Kod:
SELECT * FROM produkti INNER JOIN boja_kon ON produkti_id = produkti.id AND INNER JOIN brand ON brand_id = brand.id WHERE TRUE AND boja_naziv = $boja_naziv AND brand_ime = $brand_ime.....
Kako da, na primer, izvučem žutu varijantu (sliku) produkta A ako je klijent to izabrao?
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Poznata licnost


Liberté, égalité, fraternité!

Zodijak Aquarius
Pol Muškarac
Poruke 4891
Zastava Vozdovac - Republika
OS
Windows 7
Browser
Chrome 46.0.2490.80
mob
Samsung S7
inner join se koristi samo ako si siguran da svaki proizvod ima boju. Ako kojim slucajem imas proizvode bez definisane boje, ovaj select upit ti nece doneti podatke. Left Join pogledaj.

Select bp.slikapath from boja_prod bp left join product p on p.productid = bp.productid left join boje b on b.bojaid = bp.bojaid where b.bojanaziv = 'zuta'

ako nece left, probaj right
IP sačuvana
social share
Pogledaj profil WWW Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Ucesnik diskusija


Zodijak Aquarius
Pol Muškarac
Poruke 73
Zastava Niš
OS
Windows 7
Browser
Chrome 47.0.2526.80
mob
LG L90
Posle mesec i kusur dana vraćam se na ovaj problem. Smiley Mislim da sam razumeo šta podrazumeva normalizacija baze ali nije mi najjasnije kako da izvučem potrebne informacije preko SQL upita. Npr. meni je potreban naziv produkta, cena, SVE BOJE i odgovarajuće slike koje zavise od tih boja, brand, format. Korisnik bi filtrirao informacije na osnovu branda, formata, boje i cene. jQuery pokupi id-e checkbox-ova koji su čekirani i šalje ih AJAX-om skripti u php-u koja komunicira sa bazom. Na osnovu ovog dizajna http://prntscr.com/9efu2g , pomenute informacije izdvajam iz različitih tabela. Nije mi baš jasno kako da formulišem SQL upit. Gore si napisao kako bih mogao da izvučem jednu informaciju...
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Poznata licnost


Liberté, égalité, fraternité!

Zodijak Aquarius
Pol Muškarac
Poruke 4891
Zastava Vozdovac - Republika
OS
Windows 7
Browser
Chrome 47.0.2526.80
mob
Samsung S7
Ajde ovako

Ti imas podatke snimljene u bazi podataka u obliku 2D tablela. Tabele se medjusobno spajaju putem INNER JOIN-a striktno i putem LEFT OUTER JOIN-a koji ce u slucaju nedostajucih informacija na mesto spoljasnjeg kljuca staviti NULL.

Ja sam ti dao odgovor na pitanje kako da dobijes proizvod zute boje... itd.

Ovo sto ti sad trazis je kako da dobijes jedan proizvod u vise boja (dakle nije samo 2D tabela) sa pripadajucim brandovima...

Uglavnom ces dobiti kroz SQL upit nesto poput ovoga

Pr. | Boja | Brand | Format
-----------------------------------------------------------
Tastatura Crna Logitech  XYZ
Tastatura Plava Logitech XYZ
Tastatura Crvena Logitech XYZ
Tastatura Crna HP XYZ
Tastatura Plava HP XYZ


Kao sto vidis nema veze izmedju Branda i Formata, tako da ce SQL upit da pokupi sve kombinacije. Cak i nemoguce.



IP sačuvana
social share
Pogledaj profil WWW Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Ucesnik diskusija


Zodijak Aquarius
Pol Muškarac
Poruke 73
Zastava Niš
OS
Windows 7
Browser
Chrome 47.0.2526.80
mob
LG L90
Koliko sam te ja razumeo, moraću da prepravim bazu kako bi ovo što tražim bilo moguće? Palo mi je na pamet da dodam još jednu tabelu sa putanjama do određenih slika koja će biti povezana za tabelu sa bojama, tako da jedan produkt može da ima recimo tri boje i da za svaku boju ima određenu sliku (u toj boji)...Našao sam nešto što odgovara mojoj zamislim: http://prntscr.com/9ehh3a . Kao što možeš da vidiš, ovde su u jednom meniju izabran brand, dominantna boja i tema. Ispod svakog artikla su izlistane sve boje u kojima može da bude artikala a selektovana je ona koja je u meniju sa strane filtrirana. Ako se pređe preko neke druge boje, slika se promeni. Izgleda da sam zagrizao više nego što mogu da progutam... U svakom slučaju, gledam da naučim što više radeći na ovome...Unapred se izvinjavam ako nešto lupnem Smile
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Poznata licnost


Liberté, égalité, fraternité!

Zodijak Aquarius
Pol Muškarac
Poruke 4891
Zastava Vozdovac - Republika
OS
Windows 7
Browser
Chrome 47.0.2526.80
mob
Samsung S7
kad jednom napises sql query (a moze da ti donese odjednom i vise rezultata) onda je na php da prosledi podatke na html (ili putem json objekata - preporuceno) ili kroz neki rendering

kad kasnije napravish html sa prvom bojom onda nakacish event mouse over na kvadratic boje pa onda ajax call do php -> php zove bazu da dobije podatke i ti osvezis sliku gore pomocu jquerija kad ti ajax vrati json objekat

IP sačuvana
social share
Pogledaj profil WWW Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Ucesnik diskusija


Zodijak Aquarius
Pol Muškarac
Poruke 73
Zastava Niš
OS
Windows 7
Browser
Chrome 47.0.2526.80
mob
LG L90
Napravio sam sql upit koji izvlači odgovarajuće podatke. Php to prosleđuje u obliku json-a. E sad, kao što si ti već naznačio, ponavljaju mi se produkti u json-u i samim tim mi jquery skripta za formiranje htlm-a izbacuje prikaz nekoliko istih artikala koji se razlikuju po boji. Sad pokušavam da nekako izdvojim samo jedan "primerak" produkta, gde će u prikazu artikla da se izlistaju i ostale boje tog artikla. Dole prikazani kod je za listanje svih artikala uslovno rečeno. Kada bih ubacio filtriranje npr. WHERE boja_naziv = "red", on će da mi izvuče iz baze sve produkte koji imaju crvenu boju ali informacije o ostalim bojama neću moći da dobijem...
Kod:
'SELECT naziv, cena, slika, boja_naziv, brand_naziv, format_naziv
FROM produkti
LEFT JOIN boja_kon ON produkti_id = produkti.id
LEFT JOIN format ON format_id = format.id
LEFT JOIN boja ON boja_id = boja.id
LEFT JOIN brand ON brand_id = brand.id'


IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Poznata licnost


Liberté, égalité, fraternité!

Zodijak Aquarius
Pol Muškarac
Poruke 4891
Zastava Vozdovac - Republika
OS
Windows 7
Browser
Chrome 47.0.2526.80
mob
Samsung S7
Tako je, zato sam ti rekao da napravis dva upita, jedan za sve boje, a drugi kad uradis mouse over event preko ajax a na php pa do baze i vratis razlicit objekat json.

Najbolje je naravno napraviti model ali sad ne znam kako to ide sa PHP i da li imas neki MVC pattern u njemu. Najbolje da imas model na server strani koji ces da napunis potrebnim informacijama. Cak i taj json objekat koji vracas moze za prvu ruku da ti bude taj model. Onda napravis drugi model json koji ce samo da ti se puni kad korisnik klikne na neku drugu boju.
IP sačuvana
social share
Pogledaj profil WWW Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Ucesnik diskusija


Zodijak Aquarius
Pol Muškarac
Poruke 73
Zastava Niš
OS
Windows 7
Browser
Chrome 47.0.2526.106
mob
LG L90
Razumem na šta ciljaš. Moraću na jednom mestu da izvučem sve artikle pa onda da pozivam odgovarajuće. Ne koristim MVC iako imam neka ograničena iskustva sa konceptom. Ono što mi trenutno pada na pamet je:
Varijanta gde imam sve izlistano (dobijeni json):
Produkt Boja Brand itd:
LG        red   retro
LG        yellow retro
LG        black   retro

pretvaram u verziju:

Produkt boja1 boja2 boja3 brand
LG red yellow black retro
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Poznata licnost


Liberté, égalité, fraternité!

Zodijak Aquarius
Pol Muškarac
Poruke 4891
Zastava Vozdovac - Republika
OS
Windows 7
Browser
Chrome 47.0.2526.106
mob
Samsung S7
Da tako nesto. Prva poseta stranici izlistas artikle preko html templata za svaki.

gore ide prva slika iz baze sa imenom artikla i proizvodjachem i prvom bojom koja je vezana za tu sliku. Ako nemas sliku za tu boju, dash prvu sliku koja je dostupna, ako nemas uopste slike onda stavish neku sliku univerzalnu. Dole das sve boje dostupne za taj artikal.

Posle uradish ajax klik na bojama iz kvadratica i samo zamenis sliku preko jquerija i to je to, ostalo ne dirash (osim ako ne menjas i naziv proizvoda tipa "LG zvucnici XCL2000 crni" onda moras i taj span/div  da
osvezish.

E sad mozes to sve da optimizujes tipa ako nemas zilion proizvoda (a ako imas svakako ces da radish paging) onda u neki array na javascriptu napunis sa svim potrebnim podacima pa onda ne moras da ides na ajax i server pozivanje, nego samo uzimas podatke iz tog array-a.

Ides na server side samo ako korisnik klikne next page ili recimo imas jquery popup div sa detaljnim podacima o artiklu - na primer

IP sačuvana
social share
Pogledaj profil WWW Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Idi gore
Stranice:
1 2 [Sve]
Počni novu temu Nova anketa Odgovor Štampaj Dodaj temu u favorite Pogledajte svoje poruke u temi
nazadnapred
Prebaci se na:  

Poslednji odgovor u temi napisan je pre više od 6 meseci.  

Temu ne bi trebalo "iskopavati" osim u slučaju da imate nešto važno da dodate. Ako ipak želite napisati komentar, kliknite na dugme "Odgovori" u meniju iznad ove poruke. Postoje teme kod kojih su odgovori dobrodošli bez obzira na to koliko je vremena od prošlog prošlo. Npr. teme o određenom piscu, knjizi, muzičaru, glumcu i sl. Nemojte da vas ovaj spisak ograničava, ali nemojte ni pisati na teme koje su završena priča.

web design

Forum Info: Banneri Foruma :: Burek Toolbar :: Burek Prodavnica :: Burek Quiz :: Najcesca pitanja :: Tim Foruma :: Prijava zloupotrebe

Izvori vesti: Blic :: Wikipedia :: Mondo :: Press :: Naša mreža :: Sportska Centrala :: Glas Javnosti :: Kurir :: Mikro :: B92 Sport :: RTS :: Danas

Prijatelji foruma: Triviador :: Domaci :: Morazzia :: TotalCar :: FTW.rs :: MojaPijaca :: Pojacalo :: 011info :: Burgos :: Alfaprevod

Pravne Informacije: Pravilnik Foruma :: Politika privatnosti :: Uslovi koriscenja :: O nama :: Marketing :: Kontakt :: Sitemap

All content on this website is property of "Burek.com" and, as such, they may not be used on other websites without written permission.

Copyright © 2002- "Burek.com", all rights reserved. Performance: 0.098 sec za 16 q. Powered by: SMF. © 2005, Simple Machines LLC.