Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Baza recepata - dizajn

[es] :: PHP :: Baza recepata - dizajn

Strane: 1 2

[ Pregleda: 5970 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Baza recepata - dizajn08.08.2012. u 12:56 - pre 141 meseci
Pozdrav, mnogi od vas su ovo radili, siguran sam...

Zanima me dizajn baze recepata... Pretpostavljam da dve tabele (kategorije i recepti), nisu bas najgenijalnije resenje... :D

E, sad, gledajuci neka gotova resenja, dosao samo do otprilike sledece strukture:

categorije: id | title
recepti: id | cat_id | name | description ... i sta god jos tu treba (cekam da vidim dizajn strane/sablona za recepte, pa cu znati preciznije)...

E, sad, sastojci, kamen spoticanja... Bilo bi bezveze nagurati sastojke (koji se cesto ponavljaju) u tabelu sa receptima, pa bi onda to ovako islo...

sastojci: id | name, pa onda jedna tabela za povezivanje sastojaka sa receptima:

sastojci_recepti: id | sastojak_id | recept_id

E, sad... tu su i kolicine (koje ce se sigurno relativno cesto ponavljati)... da li i sa njima da uradim isto???

Hvala!
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
109.122.106.*

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Baza recepata - dizajn08.08.2012. u 13:18 - pre 141 meseci
Ne verujem da ces da dobijes nesto ako ti kolicine stoje u posebnoj tabeli, ja bih dodao jos jednu kolonu u sastojci_recepti u kojoj ce biti upisana kolicina, i u sastojci jednu kolonu u kojoj ce biti upisana jedinica kolicine sastojka.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Baza recepata - dizajn08.08.2012. u 14:56 - pre 141 meseci
Citat:
pajaja:
Ne verujem da ces da dobijes nesto ako ti kolicine stoje u posebnoj tabeli, ja bih dodao jos jednu kolonu u sastojci_recepti u kojoj ce biti upisana kolicina, i u sastojci jednu kolonu u kojoj ce biti upisana jedinica kolicine sastojka.


Hvala!
Evo sad sam dobio dizajn... Na demo strani ni nema kolicina, pa se sad raspitujem da li im to treba, ili ce to sve da bude opisano u deskripciji recepta (kroz 'korake' u pripremanju)...

Pretpostavljam da je broj 'koraka' promenljiv, i trebalo bi da se koristi onaj fensi jquery slider, kao ovde: http://www.fullstopinteractive.com/#our-projects

na recept stranici...
isto sam pokusao da objasnim da ovaj fensi slajder nije dobar za setanje po kategorijama (SEO i AJAX njakanje)... ne znam da li smo se razumeli... :D
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
..f0b:1af2:90df:4ba4:597a:a328

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Baza recepata - dizajn08.08.2012. u 22:02 - pre 141 meseci
Ovo sad nema mnogo veze sa PHP-om ali moja preporuka je da obavezno imate listu sastojaka sa kolicinom i vremenom pripreme. To je prva stvar koju ce posetilac da pogleda i trebalo bi da sadrzi dovoljno informacija da moze da odluci da li mu odgovara recept ili ne.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Baza recepata - dizajn08.08.2012. u 22:50 - pre 141 meseci
Da, da, to ce svakako biti (lista sastojaka i vreme pripreme)...
(mozda je trebalo maknuti temu u MySQL, ali doci ce i do php-a, kad dodjem do organizacije admin panela, na primer:D)

Pozdrav!
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: Baza recepata - dizajn08.08.2012. u 23:10 - pre 141 meseci
Ja pravim jedan sajt sa receptima i ja sam to rešio na mnogo "gluplji" način.
Sastojci su ul u jednoj koloni, priprema je u druogoj.
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Baza recepata - dizajn08.08.2012. u 23:34 - pre 141 meseci
:)
Pa meni se to najvise svidja, ali kazu da nije 'profi'... kako si resio pretragu?

Da, kako biste ovo resili... svaki recept ce imati x 'koraka' koji bi tako trebalo da budu prikazani na strani... u admin panelu bih ih svakako odvojio... e sad...da zbudzim to u jednu kolonu nekako, u tabelu sa receptima, ili pak???




Prikačeni fajlovi
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
77.243.22.*



+303 Profil

icon Re: Baza recepata - dizajn09.08.2012. u 00:29 - pre 141 meseci
Citat:
kelja: :)
Pa meni se to najvise svidja, ali kazu da nije 'profi'... kako si resio pretragu?

Da, kako biste ovo resili... svaki recept ce imati x 'koraka' koji bi tako trebalo da budu prikazani na strani... u admin panelu bih ih svakako odvojio... e sad...da zbudzim to u jednu kolonu nekako, u tabelu sa receptima, ili pak???

Ja bih sve to stavio u jednu celiju, a upisao u fazonu:
"Ovo je recept za pitu:babina pita <|> Ovo je prvi korak <|> Ovo je drugi korak <|> ovo je treci korak"
Posle raditi explode sa "<|>" i ispisivati korake. Mnogo je lakse manipulisati podacima kad su ovako upisani. Eventualno dodati jednu kolonu u kojoj ce se cuvati broj koraka, ukoliko je potrebno za pretragu.


Citat:
sastojci: id | name, pa onda jedna tabela za povezivanje sastojaka sa receptima:
sastojci_recepti: id | sastojak_id | recept_id

Cek samo, kako mislis da trazis recepte koji imaju sastojak sa id=1 i sastojak id=2 i sastojak id=33?
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: Baza recepata - dizajn09.08.2012. u 02:00 - pre 141 meseci
Citat:
kelja: :)
Pa meni se to najvise svidja, ali kazu da nije 'profi'... kako si resio pretragu?

Pa pretraga je najjednostavniji match against. Tako i sastojke i pripremu i naslove sve odjednom.
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
92.244.133.*

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Baza recepata - dizajn09.08.2012. u 08:50 - pre 141 meseci
Citat:
Ja bih sve to stavio u jednu celiju, a upisao u fazonu:
"Ovo je recept za pitu:babina pita <|> Ovo je prvi korak <|> Ovo je drugi korak <|> ovo je treci korak"
Posle raditi explode sa "<|>" i ispisivati korake. Mnogo je lakse manipulisati podacima kad su ovako upisani. Eventualno dodati jednu kolonu u kojoj ce se cuvati broj koraka, ukoliko je potrebno za pretragu.

Moze da smesti korake u array i onda da ga zapise kao JSON u bazu. Ima vec funkcije za encode i decode koje ce da se pobrinu za sve i nece morati da misli o eskejpovanju delimitera unutar teksta.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Baza recepata - dizajn09.08.2012. u 12:57 - pre 141 meseci
Hvala, ljudi, vasi saveti su kao i uvek, pomogli!
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
37.19.108.*



+303 Profil

icon Re: Baza recepata - dizajn09.08.2012. u 14:49 - pre 141 meseci
Citat:
pajaja: Moze da smesti korake u array i onda da ga zapise kao JSON u bazu. Ima vec funkcije za encode i decode koje ce da se pobrinu za sve i nece morati da misli o eskejpovanju delimitera unutar teksta.

Ovo tvoje je mnogo elegantnije resenje :)

Posto je OP nasao sve sto ga je zanimalo, da i ja pitam:
Citat:
Milos911: "sastojci: id | name, pa onda jedna tabela za povezivanje sastojaka sa receptima:
sastojci_recepti: id | sastojak_id | recept_id"
Cek samo, kako mislis da trazis recepte koji imaju sastojak sa id=1 i sastojak id=2 i sastojak id=33?

Jel ima neko odgovor na ovo pitanje, nevezano za temu ali me zanima da li je moguce kako izvesti (normalno da bude jedan query, i ne previse zahtevan)?
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
2001:470:1f0b:1af2:78c5:cbe:..

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Baza recepata - dizajn09.08.2012. u 16:31 - pre 141 meseci
Ne znam koliko je ovo najbolje resenje, bolje da pitas na mysql forumu, ali prvo sto mi pada na pamet je:
Code (sql):

SELECT r.recept_id, itd...
FROM recepti r
INNER JOIN sastojci_recepti s1 ON s1.recept_id = r.recept_id AND s1.sastojak_id = 1
INNER JOIN sastojci_recepti s2 ON s2.recept_id = r.recept_id AND s2.sastojak_id = 2
INNER JOIN sastojci_recepti s3 ON s3.recept_id = r.recept_id AND s3.sastojak_id = 33
 

i ne izgleda bas skalabilno :)

[Ovu poruku je menjao pajaja dana 09.08.2012. u 17:46 GMT+1]
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Baza recepata - dizajn10.08.2012. u 10:26 - pre 141 meseci
Hehe, OP™ ima jos nekih pitanjaca... :D

Citat:
PHPovac: Pa pretraga je najjednostavniji match against. Tako i sastojke i pripremu i naslove sve odjednom.


Znaci, koristis fulltext search. Ok, to (valjda) znaci da moram i imena kategorija i recepata i kratke opise da drzim u 'text' tipu polja?

I onda, koliko vidim, moglo bi da se svede ovo na dve tabele, ipak - recepti i kategorije, ako sam te dobro razumeo?
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: Baza recepata - dizajn10.08.2012. u 10:39 - pre 141 meseci
Da, osim ako nećeš više kategorija, onda trebaš tri (kategorije, veze_kat, recepti).
Inače fulltext može i na varchar, ja koristim tekst samo za opise i sadržaj.
Ako hoćeš da ti sajt bude jednostavniji, možeš i sa dve trabele, a recept da ima kolonu kategorije gde smeštaš id-ove u formatu 1,2,3,4 itd. Onda ako hoćeš da prikažeš nešto pod određenim kategorijama uradiš select * from recepti where kategorije like '%{$string_sa_kategorijama}%'
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Baza recepata - dizajn10.08.2012. u 10:54 - pre 141 meseci
Citat:
PHPovac:
Da, osim ako nećeš više kategorija, onda trebaš tri (kategorije, veze_kat, recepti).
Inače fulltext može i na varchar, ja koristim tekst samo za opise i sadržaj.
Ako hoćeš da ti sajt bude jednostavniji, možeš i sa dve trabele, a recept da ima kolonu kategorije gde smeštaš id-ove u formatu 1,2,3,4 itd. Onda ako hoćeš da prikažeš nešto pod određenim kategorijama uradiš select * from recepti where kategorije like '%{$string_sa_kategorijama}%'


Aha, pa kategorije bih svakako smestio u tabelu: id | parent_id | title, a recepti bi imali cat_id, svakako... Pa mogu kombinaciju fulltext searcha i obicne pretrage, kao sto si sugerisao...

Nego, dok smo se dogovarali, likovi su se setili jednog vrlo ''zanimljivog'' dodatka: da li moze automatski da se poveca kolicina sastojaka u skladu sa izabranom porcijom (za dvoje, za troje, itd...) :D

Bojim se da nemam ideju kako ovo uraditi, suvise mogucnosti, suvise formula, svaki recept je jedinstven... :D
 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: Baza recepata - dizajn10.08.2012. u 10:59 - pre 141 meseci
Pa može ako koristiš odvojenu tabelu. Ako ne onda ništa. Evo sa odvojenom tabelom.
Imaš $kolicina_sastojak npr. 3 a sastojak jaja. To je jedna porcija. Ako korisnik klikne na dve porcije ti proslediš get promenjivu br_p i onda u php kodu proveriš da li je setovana br_p i ako jeste onda količinu sastojaka pomnoži sa br_p pojedinačno za svaki sastojak.
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Baza recepata - dizajn10.08.2012. u 16:49 - pre 141 meseci
Citat:
PHPovac:
Pa može ako koristiš odvojenu tabelu. Ako ne onda ništa. Evo sa odvojenom tabelom.
Imaš $kolicina_sastojak npr. 3 a sastojak jaja. To je jedna porcija. Ako korisnik klikne na dve porcije ti proslediš get promenjivu br_p i onda u php kodu proveriš da li je setovana br_p i ako jeste onda količinu sastojaka pomnoži sa br_p pojedinačno za svaki sastojak.



Da... tako nekako...
Eh, svakako cu morati dobro da razmislim o dizajnu baze, pre nego sto krenem... precesto im padaju na pamet neke nove mogucnosti, a jos nisam ni poceo da radim. :D

Hvala!
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Baza recepata - dizajn15.08.2012. u 11:43 - pre 141 meseci
Eh, morace ipak razdvojene tabele... Konacno sam dobio zavrsnu ''listu zelja''. Ako nekog slucajno ne mrzi, nek baci pogled na attachment...

Bice tu slideshow - sa random receptima/linkovima, ''sastojak nedelje'', sa linkovima ka nekoliko random recepata koji koriste taj sastojak...
Sklepao sam neku bazu (imate .sql fajl u attachmentu), ali sad imam izvesne nedoumice oko organizacije admin panela... s obzirom na to sto hoce, bilo bi dobro da prvo naprave ''bazu sastojaka'' -> popune tabelu ''ingredients'', a onda da ide sa popunjavanjem baze receptima... Ono ''racunanje porcija'', o kom smo pricali, moze da se resi i prostim jquery-jem, ako se povecanje/smanjenje porcija radi prostom multiplikacijom™/deljenjem, medjutim... mera, kao sto je, u primeru, ''a pinch of salt'', tesko ce da se uklopi u to... :D

U svakom slucaju, ako vas ne mrzi, bacite oko na postojecu postavku u attachmentu, pa kazite koju - hoce li moci ova organizacija baze da izgura ljuCki ovaj frontend???

Hvala!!!!

Prikačeni fajlovi
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Baza recepata - dizajn15.08.2012. u 12:49 - pre 141 meseci
To što zoveš "završna lista želja" mi ne liči na kraj.

Moram malo da te kritikujem, krenuo si odmah sa dizajnom baze, a da nisi završio ni sistem analizu.

Recimo, sada si dobio želju da staviš sastojak nedelje, a nemaš u bazi recepata, na primer, date_added. Mogao bi, da imaš datum, da pustiš upit koji bi ti rekao koji se satojak najčešće pojavljivao u prošloj nedelji, pa da onda automatski izabereš takav sastojak, ili da daš opciju da urednik prihvati taj sastojak ili odabdere neki svoj po izboru.

Pitanje je da li će i korisnici sajta moći da dodaju recept. Ako mogu, trebalo bi da držiš user_id onga ko je dodao recept.

Bilo bi interesantno imati, na primer kategoriju "Recent recepies" (najnoviji recepti po datumu objavljivanja) "Most popular" (recepti koji su najviše puta pregledani, po nekoj statistici) "User choice" (najbolje ocenjeni recepti od strane korisnika, potrebno je napraviti sistem za ocenjivanje), "Editor's choice" (recepti rangirani po oceni vlasnika sajta).

Loš dizajn baze je i to što si predvideo jednu kategoriju za jedan recept. Šta ako nešto može da bude i predjelo i glavno jelo?
Kategorizacija je slabo zamišljena. Na primer, može biti bitno da li je recept vegetarijanski/veganski ili ne. Da li je za dijabetičare ili ne. Kojoj kuhinji pripada (italijanska, kineska, japanska), da likoristi svinjetinu, govedinu, piletinu, jagnjetinu ili ribu itd..

Možda treba predvideti komentare na recepte.

Koraci su dobar kandidat (onako kako je zamišljen dizajn stranice) da budu razbijeni u više slogova u bazi - jedan korak, jedan slog, mada se meni tako nešto ne sviđa, pa bih ja sugerisao drugačiji dizajn stranice naručiocu.

Što se sastojaka tiče, mislim da je tvoj dizajn noćna mora. Tvoj sastojak nije u šifarniku, pa će chocolate i choclate (ovaj drugi je sa greškom) da budu dva različita sastojka. Zamisli samo muke sa unosom sastojaka. Zamisli recept koji traži 300g slatkovodne ribe, a drugi koji traži 300g šarana. Po kojem kriterijumu uopšte možeš da provališ da su to slični recepti.
 
Odgovor na temu

[es] :: PHP :: Baza recepata - dizajn

Strane: 1 2

[ Pregleda: 5970 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.