Šta je novo?

MySql dizajn baze

dj13

Čuven
Učlanjen(a)
30.01.2002
Poruke
818
Poena
665
Dilema oko dizajna baze. Baza je prilicno jednostavna. Nekih 11-12 kolona. Od njih 2-3 u odnosu na primarnu id kolonu mogu imate vise vrednosti, ostale samo po jednu vrednost. Nije problem oko tih 2-3 koje idu u posebne tabele, nego sta sa ovih ostalim. Trebali ih deliti u vise tabli, u koliko i kako? Np. kolone bi bile: id,ime(char), prezime(char), godiste(int),naslov(varchar),datum(date), opis(blob),boja(int),oblik(varchar), velicina(int). Navedene table su samo primer ali bi otprilike tako nesto trebalo da bude. Nece biti prosirivanje baze. A baza ce verovatno da bude poveca vremenom. A i select i insert iz baze uvek idu sve vrednosti po jednom id, a update nece biti.
poz
 
pa normalizuj ih u neku normalnu formu (recimo 3nf ) pa onda pogledaj koji su ti cesti upiti u bazu pa je denormalizuj da bi dobio performanse...(guglaj ako nisi siguran za normalne forme )

recimo tabele su
Korisnik (idKorisnika , ime , prezime , godiste )
Artikal ( idArtikla,naslov,opis,boja,oblik,velicina)
Pozajmica ( idKorisnika,IdArtikla,datum,trajanje) // ovo je ako normalizujes u 3nf
korisnije bi bilo recimo u pozajmici da vidis pored idArtikla i naziv artikla .. to ti je redundansa ali pomaze pri upitima jer nema spajanja tabela.. medjutim kako su u pitanju dve -tri tabele onda mozda nema ni potrebe ... razmisli oko toga
 
pa normalizuj ih u neku normalnu formu (recimo 3nf ) pa onda pogledaj koji su ti cesti upiti u bazu pa je denormalizuj da bi dobio performanse...(guglaj ako nisi siguran za normalne forme )

recimo tabele su
Korisnik (idKorisnika , ime , prezime , godiste )
Artikal ( idArtikla,naslov,opis,boja,oblik,velicina)
Pozajmica ( idKorisnika,IdArtikla,datum,trajanje) // ovo je ako normalizujes u 3nf
korisnije bi bilo recimo u pozajmici da vidis pored idArtikla i naziv artikla .. to ti je redundansa ali pomaze pri upitima jer nema spajanja tabela.. medjutim kako su u pitanju dve -tri tabele onda mozda nema ni potrebe ... razmisli oko toga
Hvala na predlogu. A kako bi glasio sql insert za ovaj tvoj primer?
 
pa recimo najgluplje moguce
INSERT INTO Korisnik(ime,prezime,godiste)
VALUES("Dragisa","Jankovic",1982);

onaj idKorisnika ne unosis vec je to autonumber to jest automatski se dodeljuje id pri dodavanju novog...
 
pa recimo najgluplje moguce
INSERT INTO Korisnik(ime,prezime,godiste)
VALUES("Dragisa","Jankovic",1982);

onaj idKorisnika ne unosis vec je to autonumber to jest automatski se dodeljuje id pri dodavanju novog...
To je sasvim jasno. Tako i drugu tabla artikla. A kako posle spojiti u pozajmici?
 
ovo što ti je genuine rekao u vezi normalizacije ti se upravo odnosi na postavljanje relacije podataka u tabelama baze. dakle, postupak kreiranja relacione strukture podataka se uglavnom naziva normalizacija.
e sad, konkretno spajanje tabela se (iz više tabela vađenje podataka) obavlja preko indexa. to ti je najčešće, a tako je i kod tebe "id", za korisnika, artikal, itd. najčešća komanda za vezivanje, tj. spajanje podataka je "inner join" kada se rezultati stavljaju u skup, tzv. metodom unutrašnjeg spajanja. npr: select * from table korisnik inner join pozajmica on korisnik.id_column = pozajmica.id_column (ubaci koje kolone želiš da spojiš)
ako sam te dobro razumeo, to bi trebalo da bude otprilike to..
 
Vrh Dno