Sva početnička pitanja Sva početnička pitanja bi trebala da se postavljaju u ovom forumu, a ako se pretvori u kvalitetnu diskusiju interesantnu svima - prebacićemo je u odgovarajući forum. Molimo "znalce" da ne omalovažavaju početnike, ako žele da pomognu svi ćemo biti zahvalni, ako ne žele, neka preskoče ovaj forum. |
|
Alati teme | Način prikaza |
05. 02. 2008. | #1 |
član
Na probnom radu
Datum učlanjenja: 04.02.2008
Poruke: 41
Hvala: 13
512 "Hvala" u 1 poruci
|
ID za dve tabele
Pocetnik sam u PHP-u i do sada sve je islo, pa moglo bi se reci, glatko.Ali dosao sam do jednog dela koji nikako nemogu resiti.
Naime hocu da napravim naprimer skriptu za registraciju, ali takvu da username i password upisuje u tabelu "podaci", a email i lokaciju u tabeli "razno".Ja mogu da napravim upis (normalno), ali ne znam kako da napravim da id iz prve tabele bude isti kao id iz druge tabele, da bi posle mogao posle logovanja da napravim ispis iz obe tabele Nadam se da ste razumeli sta hocu da kazem |
05. 02. 2008. | #2 |
profesionalac
Qualified
Datum učlanjenja: 11.01.2006
Lokacija: Niš
Poruke: 100
Hvala: 66
11 "Hvala" u 9 poruka
|
Ако свака табеле креће од нуле, односно, раније није имала података, ID-еви ће ти бити исти уколико истовремено уписујеш податке у табелу.
Мада, далеко боље решење је да прво упишеш податке у табелу "podaci", нађеш ID последње уписаног слога па затим урадиш упис података у "razno" и ручно поставиш ID који си претходно сазнао. |
05. 02. 2008. | #3 |
profesionalac
Professional
Datum učlanjenja: 11.10.2006
Lokacija: beograd, srbija
Poruke: 271
Hvala: 32
10 "Hvala" u 7 poruka
|
takav 'match' primarnih kljuceva uopste nije preporucljiv za rad.
ako to vec hoces da uradis, u tabeli "razno" dodaj jedno polje koje ti je ustvari spoljasnji kljuc za ovu bitniju tabelu. evo konkretno na sta mislim: tabela PODACI: user_id | int, PK, autoincrement username | varchar(32) password | varchar(32) tabela RAZNO: item_id | int, PK, autoincrement user_id | int email | varchar(32) lokacija | varchar(32) i ti sada uvek mozes da vezujes sve 'razne' podatke za usera kojeg god oces, nepogresivo. ovo ti je mnogo bolji koncept, nego da prosto pokusavas da matchujes primarne kljuceve, razni hororicni scenariji bi mogli da se dese. :| a ako oces da vidis kako najlakse da izvuces last-mysql-inserted-ID, pogledaj ovu komandu: "mysql_insert_id()" link: http://www.php.net/mysql_insert_id znaci cim ubacis nekog novog baticu na svoj sajt, samo mazni poslednji ID, npr: Kôd:
$query = "INSERT INTO users (username, password) VALUES ('dule', 'sifra')"; mysql_query($query); $last_user_id = mysql_insert(); poz |
"Hvala" dootzky za poruku: |
05. 02. 2008. | #4 |
Ivan Dilber
Sir Write-a-Lot
|
uzgred ne postoji valjani razlog da pravis ovakvu 1:1 relaciju, sem eventualno vezbe radi.. u prakticnoj primeni stavi sve u istu tabelu i uzivaj...
__________________
Leadership is the art of getting people to want to do what you know must be done. |
05. 02. 2008. | #5 | |
član
Na probnom radu
Datum učlanjenja: 04.02.2008
Poruke: 41
Hvala: 13
512 "Hvala" u 1 poruci
|
Citat:
P.S. Dobro si me podsetio ivanhoe sta da pitam.Znaci, da li je bolje kad imas dosta podataka koji se cuvaju u bazu staviti sve u jednoj tabeli ili rasporediti po vise tabela |
|
05. 02. 2008. | #6 | ||
133t
Master
|
Citat:
Citat:
Ne vredi ovako, jednostavno moras da procitas neko stivo o normalizaciji i denormalizaciji podataka u bazi http://en.wikipedia.org/wiki/Database_normalization http://dev.mysql.com/tech-resources/...alization.html |
||
05. 02. 2008. | #7 |
član
Na probnom radu
Datum učlanjenja: 04.02.2008
Poruke: 41
Hvala: 13
512 "Hvala" u 1 poruci
|
Znaci neam pojma gde sam ziveo
Ja se vec par dana mucim kako da organizujem bazu, i na kraju ukapiram (tacnije vi mi kazete) da je to apsolutno nebitno...Hvala puno |
06. 02. 2008. | #8 |
Ivan Dilber
Sir Write-a-Lot
|
nije nebitno, veoma je bitno kako ces organizovati bazu, ali ne optimizujes strukturu baze za ljude, nego za software. Zanima te iskljucivo da ubrzas i pojednostavis rad sa podacima (querije, joinove, i ostale operacije na bazi), a da pritom izbegnes svako dupliranje podataka (taj se proces zove normalizacija). Postoje tu neke razne normalne forme, odnosno nivoi optimizacije, mada je u praksi sasvim dovoljno malo logicnog (programerskog) razmisljanja i malkice iskustva da dodjes do istog (ali poznavanje teorije svakako ne skodi).
__________________
Leadership is the art of getting people to want to do what you know must be done. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Pomoc oko tabele | akki | (X)HTML, JavaScript, DHTML, XML, CSS | 1 | 22. 07. 2010. 18:24 |
Crawler i tabele | Mitrović Srđan | Marketing i SEO | 4 | 25. 05. 2008. 14:10 |
ime tabele | ivanhoe | SQL baze podataka - Sponzor: Baze-Podataka.net | 4 | 21. 05. 2007. 17:20 |
Prikaz tabele sa mnostvom slogova | Pedja | Web aplikacije, web servisi i software | 7 | 21. 07. 2006. 03:24 |