Kezdőoldal » Számítástechnika » Weblapkészítés » MySQL-ben azt, hogy tudom...

MySQL-ben azt, hogy tudom megcsinálni, hogy ha valaki felvisz egy adatot a táblába az egyedi számsort kapjon?

Figyelt kérdés

Az meg van, hogy Id, Auto_increment és mindig egy nagyobb számmal bővül de nem ezt akarom megtudni hanem azt, hogy ezt hogyan, pl.:fileid=126Aser45.

Ezt, hogy kell?

remélem érthető.

köszi a segítséget :)



2014. febr. 10. 21:04
 1/9 anonim ***** válasza:
programból generálni kell hozzá valami random stringet ami egyedi mindig
2014. febr. 10. 21:09
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:

sima ID -nem jó?

[link]

2014. febr. 10. 21:15
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:
azt írta hogy nem:D
2014. febr. 10. 21:15
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

Az ID miért nem jó?


Lehet generálni is, csak tök fölösleges, plusz oda kell figyelni, hogy ne legyen egyezés.

Ez megoldható pocsékolósan, hogy mindig előbb lekéred, hogy a random generált szerepel-e már, ha igen, újat generálsz és így tovább.

Vagy egyszerűen egyedire teheted az adott oszlopot és az adat bevitelkor ellenőrzöd, hogy nem dob-e hibát az SQL szerver. Ha hibát ad vissza, akkor újra generálsz.

Vagy egy viszonylag egyedi dolgot is beleveszel, ami miatt csökken az egyezőség lehetősége. Például az ID-t (ami insertnél ugye még nincs), vagy felhasználó nevet, esetleg e-mail címet ha ezek egyediek, de persze ezer más megoldás is lehet.


Igazából ez mind-mind halál fölösleges macera, eddig nem nagyon láttam olyat, ahol tényleg muszáj lett volna így generálni valamit a db-be.

2014. febr. 10. 21:25
Hasznos számodra ez a válasz?
 5/9 Tengor ***** válasza:
Miért jobb, ha egy hosszú stringgel azonosítasz valamit, mint ha egy INT-tel? Miért jó így növelni az indexek méretét?
2014. febr. 11. 08:14
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:
Az úgy nem jó, hogy autoincrementes mezőt használsz és ebből állítod elő a fileid-t egy xor-ral? El se kell tárolni, mert ugyanezzel a művelettel vissza is állítható.
2014. febr. 11. 08:22
Hasznos számodra ez a válasz?
 7/9 Drone007 ***** válasza:

Php-val generáltatsz random stringet pl:

$uid = uniqid();

vagy

$uid = md5(time());

Ez utóbbit mysql-ből is hívhatod:

... `uid` = MD5( UNIX_TIMESTAMP() ) ...

2014. febr. 11. 18:50
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:

@Drone007: Na igen, de ezeknél nincs garancia arra, hogy tuti nem lesz ütközés. :)

Az md5 esetében ugye limitált a hossz, hiába rohadt kicsit rá az esély, attól még megvan.

2014. febr. 11. 19:36
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:

md5(time()); <<< is tökéletes lehetne, de nem ártana végére szúrni még egy rand(100,999) -et.

md5(time().rand(100,999));

így kiszűrve ha véletlen egy időbe több user is ugyan azt kapja.

2014. febr. 11. 20:13
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!