náhodně generovaný textový řetězec-efektivněji
14 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
neporadil by mě někdo jak efektivněji vygenerovat textový řetšzec obshující znaky a-z a 0-9 a zajistit jeho jedinečnost podle databáze generovaných řetšzců já to zatim mam vymyšleny tak že fci random() vygeneruji nahodne čislo a fci krypt() to zakryptuji a sql overim jestli toento retezec jiz neexistuje nezna nekdo neco efektivnejsiho?
-
myslim ze to lze povazavot za dostatecne. staci to tak a je to dostatecne efektivni
-
Místo random() je lepší použít uniqid(), která generuje unikátní řetězce založené na čase.
-
to honza : dik to Master (---.sbone.cz) tusil jsem ze to jde efektivneji
-
Slovo "efektivne" v programatorske sematice znamena "rychle". Neni to totez jako slovo kvalitne!
-
navrh Honzy (---.gyrec.cz) je lychlejsi protoze nemusim vymeslet nahodne cisla a kriptovat ho mam uz rovnou retezec topro me znamena efaktivnejsi (rychlejsi) míisto dvou prikazu(f_ci) pouzit jeden
-
jenze pokud tvou aplikaci pouziva vice uzivatelu, je mozne, ze i kdyz to overis, tak mezi tim nez to zapises si stejny retezec vygeneruje jinu uzivatel a pak se tam zapisou stejne takze bud nejak zamknout tabulku (nejsem si ted z hlavy jist jestli mysql umi), nebo proste pouzit k overeni databazi - pokud mas unikatni id kolonku v tabulce, a pokusis se vlozit zaznam s id ktery uz existuje, databaze ho nevlozi a vrati error, takze by slo napsat: generuj retezec dokud ne(pokud o vlozeni vygenerovaneho retezce selhal) { generovat retezec } nebo prirozene to prepsat pomoci repeat/until repeat generuj retezec until (vlozeni se nepovedlo)
-
...pokracuji navi ve vetsine pripadu budes volat jen jednu sql funkci, coz muze byt rychlejsi nez jendou funkci zjistovat a pak dalsi funkci vkladat
-
to: ja ptrebiji nejakY slozitejsi tretezec nez jen dve cislice id
-
tim id jsem myslel sloupec v databazi oznaceny jako primary key, typem to muze byt klidne libovolne dlouhy retezec
-
V MySQL se tabulky zamknout dají, takže to jde obojím.
-
2 Andrew: Jak?
-
flush tabels with read lock ;-) - coz ti na wz asi nepobezi, jinak: lock table tbl_name to by mohlo chodit, co?
-
mala pravdepodobnost ze se podari vygenerovat najdou dva upne stejne retezce (generovat tento retezec budu jen vyjmecne