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

auto_increment or ?

[es] :: MySQL :: auto_increment or ?

[ Pregleda: 3044 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

twix
NYC

Član broj: 1779
Poruke: 272
*.blueisp.co.yu.

Sajt: www.twixbox.net


Profil

icon auto_increment or ?13.02.2005. u 02:24 - pre 233 meseci
Ne znam ni sam kako da postavim pitanje, posto prvi put radim sa mysql bazom, procitao sam par tutoriala i vec sam naisao na problem.

mysql> select * from user;
+----+-----------+-----------------+----------+--------------+
| id | username | email | password | website |
+----+-----------+-----------------+----------+--------------+
| 10 | | | | |
| 9 | korisnik1 | [email protected] | pass1 | www.test.com |
+----+-----------+-----------------+----------+--------------+
2 rows in set (0.04 sec)

Znaci dodao sam kao neke korisnike, i pobrisao ih,.. svaki sledeci koji se reguje dobije sledeci id iako su prethodni obrisani,.. a tabelu sam kreirao na sledeci nacin:

CREATE TABLE user (
id int(10) NOT NULL auto_increment,
username varchar(25) NOT NULL default '',
email varchar(250) NOT NULL default '',
password varchar(25) NOT NULL default '',
website varchar(250) NOT NULL default '',
PRIMARY KEY (id),
);

Kao sto sam rekao, pocetnik sam, pa me zanima kako mogu da resim ovaj problem, znaci kad se reguje user da dobije sledeci po redu ID,.. i recimo ako obrisem 5 usera (od 5) da sledeci koji se reguje bude broj 1 a ne 6.

I jos nesto,.. kako jos da uradim da kada se neko registruje, ne moze da ostavi neko polje prazno:

if ( $username == "" and $password == "" and $email == "" and $website == "" )
{ echo 'Polja ne mogu da budu prazna!'; }

?
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.blueisp.co.yu.



+3 Profil

icon Re: auto_increment or ?13.02.2005. u 14:16 - pre 233 meseci
Zasto je bitno da ID-evi idu jedan za drugim(i da ne bude rupa)??
Owl
 
Odgovor na temu

twix
NYC

Član broj: 1779
Poruke: 272
*.blueisp.co.yu.

Sajt: www.twixbox.net


Profil

icon Re: auto_increment or ?14.02.2005. u 02:04 - pre 233 meseci
Pa sad ;) treba mi zbog neke liste, mada verovatno to moze da se resi na neki drugi nacin...
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: auto_increment or ?14.02.2005. u 07:52 - pre 233 meseci
Za ovo pitanje treba napraviti top temu, svako malo pa se nađe neko ko pita kako da mu ključevi budu uzastopni...
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.blueisp.co.yu.



+3 Profil

icon Re: auto_increment or ?14.02.2005. u 14:14 - pre 233 meseci
Pa ako je zbog liste (ustvari tebi treba samo redni broj ispred svakog reda), onda ti ne preostaje nista drugo nego da sednes i zasuces rukave. Moguce je ostvariti da imas uzastopne brojeve bez rupa samo sto ces da se iscimas dok to napravis. Posle ces se nadati da baza ne bude opterecena sa mnogo izmena (brisanje pa dodavanje) posto se moze desiti da dodje do znatnog usporenja - ali ipak sve to je vredno krajnjeg cilja zar ne?
Owl
 
Odgovor na temu

twix
NYC

Član broj: 1779
Poruke: 272
*.blueisp.co.yu.

Sajt: www.twixbox.net


Profil

icon Re: auto_increment or ?14.02.2005. u 20:16 - pre 233 meseci

Znas kako, dok ne smislim pravo resenje za to, necu ni stavljati ID,.. jer problem se javlja posle kad imas recimo 100 korisnika i obrises 41 i 72, treba svima da se pomeri ID, a to vec jeste problem, a posto sam ja pocetnik uopste nemam predstavu kako da krenem, mislim imam nekih ideja (sa max brojevima) ali za sada necu oko toga da se cimam, ako neko bude imao ideju ili resenje super, ako ne,.. ostace ce za sada bez ID-a.
 
Odgovor na temu

caiser

Član broj: 4677
Poruke: 2462
*.eunet.yu.

ICQ: 162962030


Profil

icon Re: auto_increment or ?14.02.2005. u 20:27 - pre 233 meseci
Ako moze da bude bez ID-a zasto ne moze da bude sa ID-evima koji nisu po redu? Ne kontam.
 
Odgovor na temu

twix
NYC

Član broj: 1779
Poruke: 272
*.blueisp.co.yu.

Sajt: www.twixbox.net


Profil

icon Re: auto_increment or ?15.02.2005. u 01:37 - pre 233 meseci
Citat:
caiser: Ako moze da bude bez ID-a zasto ne moze da bude sa ID-evima koji nisu po redu? Ne kontam.


Pa sad, ako krenem tako, onda mi ni treba ni lista, ni sajt ;) u svakom slucaju, tu kolonu za sada necu da prikazujem, dok ne saznam id shemu...
 
Odgovor na temu

stsung
NS

Član broj: 12899
Poruke: 432
*.dialup.neobee.net.



+2 Profil

icon Re: auto_increment or ?15.02.2005. u 10:44 - pre 233 meseci
Pozd.
Ovaj ti komentar ne stoji. Ako neshto jednostavno ne treba raditi (a ne treba jer se kosi sa principima baza podataka), to ne znachi da ne treba raditi ni ostalo.

Pomenucu samo neke od problema chachkanja kljucheva kako ne treba:
- Aplikacija obrishe neku relaciju, i kulturno krene da menja kljucheve kako jelda ne bi bilo rupa. U tom trenutku drugi korisnik se nakachi i takodje obrishe nekog korisnika i krene da menja kljucheve. Problem je ochigledan - postoji verovatnoca da ce da se simultanim menjanjem kljuchevi totalno pobrkaju. (Molim samo bez komentara kako nikad nece biti drugog korisnika)
- Ako, dace codd, uznapredujesh sa radom sa bazama podataka, i pozhelish da ubacish josh koju tabelu koja ce biti vezana sa ovom i imati josh kojekakve podatke, treba da znash da je taj kljuch veza izmedju te dve (ili n) tabele/tabela. To znachi da bi chachkanje po kljuchevima iz prve tabele povlachilo da ce veze pobrkati, shto opet znachi da se moraju menjati i podaci u drugoj ili drugim tabelama. A sve to je totalna glupost i nevidjeno gubljenje vremena ... bolje da se skoncentrishesh na neke druge stvari, kao shto je ne korishcenje kljucheva u druge svrhe osim za ono za shta su namenjeni.

Za kraj, preporuchujem ti da malo prochitash o relacionim bazama podataka (google?) pre nego shto nastavish da ih koristish.

No, ako si bash zapeo da ti idu po redu, dajem ti reshenje bazirano na tvojoj strukturi tabele, i predlazhem da se bavish nechim drugim ako ga budesh primenio.
Code:

DELETE from user WHERE id=[ID];
UPDATE user SET id=id-1 WHERE id>[ID];
ALTER TABLE user auto_increment=[MAX(id)+1]

Ovo naravno podrazumeva da je tabela vec uredjena. [ID] i [MAX(id)+1] su konstantne vrednosti.
Sada idem da se ubijem, jerbo vece djubre od koda u zhivotu nisam napisao

Svako dobro.
 
Odgovor na temu

[es] :: MySQL :: auto_increment or ?

[ Pregleda: 3044 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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