[mysql] projektowanie bazy i pytania...
DjAvX - 19-09-2007 00:08
[mysql] projektowanie bazy i pytania...
Witam, projektuje baze produktów i mam kilka pytan o optymalne rozwiazana moich problemow ;)
### Pierwszy problem: kazdy produkt ma nazwe i opis, nazwa varchar(255) opis(text), czy jest sens pakowanie opisu i nazwy do jednej tabeli czy lepiej je rozgraniczyc do innych tabel? jak bedzie optymalniej dla bazy?
### Problem drugi: kazdy produkt moze miec kilka obrazkow + miniaturki w kilku rozmiarach. Pomysly mam takie:
* okreslic ile moze byc max obrazkow i jakie maja byc wymiary miniaturek i ile ich bedzie i zrobic tabelke w stylu idproduktu, obraz1, minobraz1, min2obraz2.... obraz2...obraz3...
albo * zrobic 2 tabele WYMIARY, OBRAZY i teraz w wymiarach bym mial idwymiaru, x, y. a w obrazach idobrazu, idproduktu, idwymiaru, nazwapliku. W tym rozwiazaniu jest lepsze to ze kazdy produkt moze miec n obrazkow + n wymiarow miniaturek.
### Problem trzeci: Kazdy produkt moze byc powiazany z innymi (jakas grupa produktow) np długopis + wkład do długopisu.
dane o grupach dostaje w poztaci tekstowej np 111; NAZWA1; GRUPA1+GRUPA2 121; NAZWA2; GRUPA1+GRUPA3 234; NAZWA3; GRUPA3
jak najoptymalniej przechowywac takie informacjie w bazie? zeby szybko mozna bylo sprawdzic z jakimi innymi produktami nasz produkt jest powiazany? (jakie sa inne produkty w grupie naszego produktu)
Z góry dziekuje za pomoc -- Pozdrawiam DjAvX
wloochacz - 19-09-2007 00:08
> Witam, > projektuje baze produktów i mam kilka pytan o optymalne rozwiazana moich > problemow ;) > > ### Pierwszy problem: > kazdy produkt ma nazwe i opis, nazwa varchar(255) opis(text), > czy jest sens pakowanie opisu i nazwy do jednej tabeli czy lepiej je > rozgraniczyc do innych tabel? > jak bedzie optymalniej dla bazy? Każdy produkt jest unikalny, a więc ID i opis w jednej tabeli.
> ### Problem drugi: [ciach] "Relacja jeden-do-wielu" http://web.pertus.com.pl/~stanley/ac...ka/Relacje.htm
> ### Problem trzeci: [ciach] "Relacja wiele-do-wielu" http://web.pertus.com.pl/~stanley/ac...ka/Relacje.htm
> jak najoptymalniej przechowywac takie informacjie w bazie? zeby szybko > mozna bylo sprawdzic z jakimi innymi produktami nasz produkt jest > powiazany? (jakie sa inne produkty w grupie naszego produktu) Zakup sobie jakąś książkę o relacyjnych bazach danych... A Twoja baza może wyglądać tak: http://www.dgbit.pl/files/dj/MImage.html 1 minuta... ;-)
-- wloochacz
DjAvX - 19-09-2007 00:08
> A Twoja baza może wyglądać tak: > http://www.dgbit.pl/files/dj/MImage.html > 1 minuta... ;-)
No nie do konca, brakuje uwzglednienia miniaturek i ich rozmiaru, rozumiem ze w obrazek(blob) mam trzymac binarke obrazka ale to chyba nie bedzie zbyt optymalne dla bazy jesli tych obrazków będzie np 50tys... ? -- DjAvX
xyrix - 19-09-2007 00:08
DjAvX pisze:
> rozumiem ze w obrazek(blob) mam trzymac binarke obrazka ale to chyba nie > bedzie zbyt optymalne dla bazy jesli tych obrazków będzie np 50tys... ? Niech cię pan Bóg strzeże... Ja robię to w ten sposób, że dane o adresie miniatur i dużych obrazków trzymam w tabeli z id i opisem. Wszystko jest tu unikalne, więc "bytów zbędnych nie tworzę" (tu kolejnych tabel z adresami grafik). Rozwiązanie jest proste i u mnie się sprawdza. A.
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 19-09-2007 00:08
xyrix wrote: > DjAvX pisze: > >> rozumiem ze w obrazek(blob) mam trzymac binarke obrazka ale to chyba nie >> bedzie zbyt optymalne dla bazy jesli tych obrazków będzie np 50tys... ? > Niech cię pan Bóg strzeże...
Dlaczego? Świat nie ogranicza się do stron www!
-- P.M.
wloochacz - 20-09-2007 00:03
Paweł Matejski pisze: > xyrix wrote: >> DjAvX pisze: >> >>> rozumiem ze w obrazek(blob) mam trzymac binarke obrazka ale to chyba nie >>> bedzie zbyt optymalne dla bazy jesli tych obrazków będzie np 50tys... ? >> Niech cię pan Bóg strzeże... Bo? Trzymanie obiektów w bazie danych nie jest takim złym pomysłem, aczkolwiek wszystko zależy. A pisanie, że coś takiego jest "niezbyt optymalne dla bazy", jest często powtarzanym banałem, który ma niewiele wspólnego z rzeczywistością. Wszystko zależy od projektu bazy i aplikacji, która z niej korzysta. Trzymanie obrazków na dysku jest OK, dla PHP i innych ustrojstw uruchamianych na serwerze. W innych przypadkach (aplikacja desktop) to wprowadza więcej zamieszania niż korzyści, no chyba że będzie coś na kształt serwera aplikacyjnego - ale sądząc po poziomie pytania, to nie ta liga...
> > Dlaczego? Świat nie ogranicza się do stron www! Właśnie.
-- wloochacz
wloochacz - 20-09-2007 00:03
DjAvX pisze: >> A Twoja baza może wyglądać tak: >> http://www.dgbit.pl/files/dj/MImage.html >> 1 minuta... ;-) > > No nie do konca, brakuje uwzglednienia miniaturek i ich rozmiaru, > rozumiem ze w obrazek(blob) mam trzymac binarke obrazka ale to chyba nie > bedzie zbyt optymalne dla bazy jesli tych obrazków będzie np 50tys... ? Jeśli liczyłeś na to że dostaniesz kompletny ERD, to się pomyliłeś. To jest tylko PRZYKŁAD; przecież nikt Ci nie broni abyś dodał odpowiednie atrybuty do tabeli TowaryObrazki (szeroksc int, wysokosc int, id_ObrazkaDuzego int (tzw. Self Join)). W takim układzie pole id_ObrazkaDuzego wskazuje na duży obrazek, którego dany wiersz jest miniaturą. Upraszczając, jeśli id_ObrazkaDuzego is null to jest to duży obrazek, jeśli id_ObrazkaDuzego is not null to jest to miniatura obrazka, którego id_obrazka = id_ObrazkaDuzego.
-- wloochacz
xyrix - 20-09-2007 00:03
Paweł Matejski pisze: > xyrix wrote: >> DjAvX pisze: >> >>> rozumiem ze w obrazek(blob) mam trzymac binarke obrazka ale to chyba nie >>> bedzie zbyt optymalne dla bazy jesli tych obrazków będzie np 50tys... ? >> Niech cię pan Bóg strzeże... > > Dlaczego? Świat nie ogranicza się do stron www! > > Cóż, założyłem, że o www właśnie idzie. Ale mam jakieś przeczucie, że się nie pomyliłem. A.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.plshutter.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|