DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   baza za online prodavnicu (http://www.devprotalk.com/showthread.php?t=10339)

slavkan 02. 09. 2011. 15:41

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 !

misk0 02. 09. 2011. 15:51

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.

slavkan 02. 09. 2011. 16:09

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) ?!?

ivanhoe 02. 09. 2011. 16:57

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

webarto 02. 09. 2011. 17:36

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


slavkan 02. 09. 2011. 18:53

Citat:

Originalno napisao webarto (Napišite 101315)

razumem, pokusacu nesto da sklepam pa se javljam !

dacha 03. 09. 2011. 01:27

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.

slavkan 03. 09. 2011. 15:45

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)


jablan 03. 09. 2011. 17:29

Da, to ti je već napisao ivanhoe:

Citat:

Originalno napisao ivanhoe (Napišite 101314)
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 (Napišite 101328)
Ono što tebe zanima je verovatno EAV model (Entity-attribute-value model), pa potraži na Googlu.


slavkan 03. 09. 2011. 17:51

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 ?


Vreme je GMT +2. Trenutno vreme je 14:51.

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.