DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 02. 09. 2011.   #1
slavkan
profesionalac
Professional
 
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
slavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished road
Default baza za online prodavnicu

Pozdrav svima. Pravim neku bazu za online prodavnicu racunara i treba mi savet oko organizacije iste. Evo o cemu se radi:

Treba pamtiti podatke komponentama i konfiguracijama komponenti koje prodavnica ima. Naravno administrator aplikacije mora da ima opciju da sve to menja (dodaje nove komponente i konfiguracije, brise, menja brojno stanje komponenti - standardica). Treba omoguciti i online narudzbu, tj da korisnik moze sam da napravi sebi konfiguraciju izborom komponenti. To je uglavnom najbitniji deo baze, ne racunajuci registraciju korisnika, definisanje administratora, ovlascenja sta ko moze da vidi itd. E sad, interesuje me ovaj dio oko komponenti, konfiguracija i narudzbi. Da li je zgodnije da sve komponente smestam u jednu tabelu ili da ih razvrstavam (npr posebno ploce, posebno procesore itd) ali u tom slucaju dobijam vise tabela. Ako bi ih stavio u jednu tabelu onda bi mogao da dodam jos jedno polje gde bi mogao da indetifikujem nekim parametrom da li su to ploce da li su procesori... zanima me sta je zgodnije i sta ce praviti manje problema u daljem radu. Nema potrebe da jos detaljisem, mislim da je svima jasno o cemu se radi. Hvala unapred svima !
slavkan je offline   Odgovorite uz citat
Staro 02. 09. 2011.   #2
misk0
majstor
Wrote a book
 
Avatar misk0
 
Datum učlanjenja: 30.01.2006
Lokacija: Lugano - Switzerland
Poruke: 1.251
Hvala: 219
106 "Hvala" u 67 poruka
misk0 će postati "faca" uskoromisk0 će postati "faca" uskoro
Pošaljite ICQ poruku za misk0 Pošaljite poruku preko Skype™ za misk0
Default

1. Zasto izmisljas toplu vodu? Ukoliko pravis nesto konkretno, najbojlej e koristiti gotova rjesenja (e-commerce), ako hoces uciti - onda je razlog opravdan.

2. Zamisli da imas 100.000 razlicitih kategorija proizvoda (sto nije nemoguce u nekoj obicnoj prodavnici) .. koliko ces tabela u tom slucaju imati? Kakva ces im imena davati? Kako ces ih naci?... Jednom rijecju - ne radi se to tako.
Znam da tebe buni to sto razlicite kategorije proizvoda imaju razlicite karakteristike, ali to se rjesava promjenjivim (opcionim) atributima koji su vezani za odradjene grupe / vrste proizvoda.
__________________
@Twitter
misk0 je offline   Odgovorite uz citat
Staro 02. 09. 2011.   #3
slavkan
profesionalac
Professional
 
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
slavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished road
Default

Pa ucim, nista gotova resenja.
Pa kakve veze ima sto imam 100000 artikala ako imam, sto ti kazes, mogucnot da izvrsim kategorizaciju proizvoda (tastature, misevi, hdd, monitori).
Koliko shvatam, ti predlazes da sve komponente budu u jednoj tabeli koja ce imati jedno polje "kategorije" pa ako se javi da imam 100 razlicitih monitora oni ce biti u tabeli pod kategorijom "monitori" i time sam na dalje resio problem sa manipulacijom (brisanje, promenu brojnog stanja u magacinu, ponudu korisniku da izabere odredjenu komponentu iz odredjene kategorije itd) ?!?
slavkan je offline   Odgovorite uz citat
Staro 02. 09. 2011.   #4
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

imas tabele proizvodi, kategorije i veznu tabelu proiz_kateg koja ima samo polja proizvod_id i kategorija_id (posto je obicno pretpostavka da jedan proizvod moze da bude u vise kategorija, ako to nije potrebno onda mozes i bez ove tabele). Kategrije imaju polje parent_id, preko koga moze da se pravi hijerarhija tipa maticne_ploce -> intel -> i7 (a istovremeno ti ta ploca spada u recimo kategoriju Asus)

To je jednostavan deo, ono sto je komplikovanije su atributi za proizvode, posto nemaju iste osobine maticna ploca i tastatura, znaci treba da imas polja koja su pretraziva, a razlikuju se za svaku kategoriju proizvoda. Zato su za takve stvari bolje no-sql baze, recimo MongoDB je fenomenalan za takve poslove
__________________
Leadership is the art of getting people to want to do what you know must be done.

Poslednja izmena od ivanhoe : 02. 09. 2011. u 17:03.
ivanhoe je offline   Odgovorite uz citat
"Hvala" ivanhoe za poruku:
Staro 02. 09. 2011.   #5
webarto
expert
Grand Master
 
Avatar webarto
 
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
webarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished road
Default

http://en.wikipedia.org/wiki/Many-to...8data_model%29

__________________
Github // LinkedIn // PHP // ZCE // Stackoverflow PHP // Site5 Web Hosting
webarto je offline   Odgovorite uz citat
Staro 02. 09. 2011.   #6
slavkan
profesionalac
Professional
 
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
slavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished road
Default

Citat:
Originalno napisao webarto Pogledajte poruku
razumem, pokusacu nesto da sklepam pa se javljam !
slavkan je offline   Odgovorite uz citat
Staro 03. 09. 2011.   #7
dacha
profesionalac
Qualified
 
Datum učlanjenja: 23.06.2005
Poruke: 196
Hvala: 35
35 "Hvala" u 30 poruka
dacha is on a distinguished road
Default

Ono što tebe zanima je verovatno EAV model (Entity-attribute-value model), pa potraži na Googlu. EAV ti daje fleksibilnost u opisu proizvoda različitim atributima, ali ima svoju cenu u pogledu brzine. Ako želiš prodavnicu opšte namene onda možda treba razmišljati o ovakvom rešenju, u suprotnom potraži način da izbegneš ovaj model.
dacha je offline   Odgovorite uz citat
Staro 03. 09. 2011.   #8
slavkan
profesionalac
Professional
 
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
slavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished road
Default

Evo, od prilike koliko sam shvatio za ovaj deo oko proizvoda, kategorija i narudzbe bi trebao da izgleda ovako. Samo jos nesto da razjasnimo, pod kategorijama se, u ovom slucaju,valjda podrazumevaju monitori,tastature,memorije itd, ako je to tako onda bi relacioni model licio na nesto ovako:

Kôd:
Proizvodi (idProizvoda, nazivProizvoda)
Kategorije (idKategorije, nazivKategorije)
Proizvodi_Kategorije (idProizvoda,idKategorije)
Narudzba (idNarudzbe,idProizvoda,idKategorije)
Imam jos jedno pitanje, ako bi se podrazumevalo da pod kategorijama podrazumevam tastature,monitore.memorije ... da li bi se mogla izbeci ova tabela Proizvodi_Kategorije ako vazi da jedna kategorija moze da ima vise proizvoda ali jedan proizvod moze da ima samo jednu svoju kategoriju (npr ne moze proizvod tastatura da pripada kategorijama tastatura i memorije ):

Kôd:
Proizvodi (idProizvoda, nazivProizvoda, idKategorije)
Kategorije (idKategorije, nazivKategorije)
Narudzba (idNarudzbe,idProizvoda,idKategorije)

Poslednja izmena od slavkan : 03. 09. 2011. u 15:56.
slavkan je offline   Odgovorite uz citat
Staro 03. 09. 2011.   #9
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

Da, to ti je već napisao ivanhoe:

Citat:
Originalno napisao ivanhoe Pogledajte poruku
posto je obicno pretpostavka da jedan proizvod moze da bude u vise kategorija, ako to nije potrebno onda mozes i bez ove tabele
BTW, šta će ti kategorija u narudžbenici?

Što se tiče karakteristika proizvoda koji zavise od kategorije, pogledaj ovo što je preporučio dacha:

Citat:
Originalno napisao dacha Pogledajte poruku
Ono što tebe zanima je verovatno EAV model (Entity-attribute-value model), pa potraži na Googlu.
__________________
blog
jablan je offline   Odgovorite uz citat
Staro 03. 09. 2011.   #10
slavkan
profesionalac
Professional
 
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
slavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished road
Default

Hhehe, u pravu si za narudzbenicu ne treba kateogrija

Zaboravio sam da ce mi trebati jos jedna tabela a to je konfiguracije koje ce se ticati samo administratora u fazonu kao da administrator moze da pravi konfiguracije i da ih predlaze kupcima. Da li je dovoljno samo samo da ta tabela konfiguracije kao spoljni kljuc ima idProizvoda iz tabele Proizvodi ili kako vec ?
slavkan je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum


Vreme je GMT +2. Trenutno vreme je 13:42.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.