Autor | Zpráva | ||
---|---|---|---|
crash01 Profil |
#1 · Zasláno: 24. 10. 2011, 15:03:24 · Upravil/a: crash01
Dobrý den (Nazdar),
jak identifikujete uživatele na stránkách. Pomocí nějakého unikátního ID, nebo třeba jména. Jen mě zajímá, kolik lidí preferuje kterou variantu. Osobně používám celočíselné ID. Budu moc rád, když někdo obětuje pár vteřin a napíše preferovanou volbu. Díky Crash01 |
||
Sir Tom Profil |
#2 · Zasláno: 24. 10. 2011, 15:07:32
crash01:
Také dobrý den (nazdar), používám jedinečné ID - podle jména to není moc dobré, protože se mohou vyskytnout dva lidé se stejným jménem. ID je jenom jedno. |
||
crash01 Profil |
#3 · Zasláno: 24. 10. 2011, 15:18:12
Sir Tom:
Myslím, že u uživatelů je nežádoucí výskyt dvou lidí se stejným loginem. Zajímá mě hlavně problematika rušní uživatelů, pokud jsou uživatelé řazeni podle ID (pořádí v registraci), je nutné vytvořit sloupec navíc se statusem uživatele (funkční/zrušen). U jména to odpadá. Jinak je podle mě ID praktičtější. |
||
Sir Tom Profil |
#4 · Zasláno: 24. 10. 2011, 16:28:06 · Upravil/a: Sir Tom
crash01:
Tak login a jméno je něco jiného. Záleží také na typu aplikace - u nějaké online hry je opravdu nežádoucí výskyt dvou stejných jmen/přezdívek, ale třeba na Facebooku to klidně být může. „Zajímá mě hlavně problematika rušní uživatelů, pokud jsou uživatelé řazeni podle ID (pořádí v registraci), je nutné vytvořit sloupec navíc se statusem uživatele (funkční/zrušen).“ To nechápu - tento sloupec je třeba mít u každého uživatele ne? klasická tabulka: ID - name - ..... - status edit: PLUS - pomocí toho ID lze snadno propojit daného uživatele s hodnotami v jiné tabulce se sloupcem userID |
||
crash01 Profil |
#5 · Zasláno: 24. 10. 2011, 19:04:12 · Upravil/a: crash01
Tak login a jméno je něco jiného. Záleží také na typu aplikace - u nějaké online hry je opravdu nežádoucí výskyt dvou stejných jmen/přezdívek, ale třeba na Facebooku to klidně být může.
Špatně jsem se vyjádřil, samozřejmě jsem myslel login. Status by při identifikaci podle jména být ukládán nemusel (bereme-li pouze funkční/nefunkční). Zrušený uživatel by byl jednoduše smazán (není to ideální, vím). Při identifikaci pomocí ID když uživatele smažu, nemůžu již ostatním přiřazovat číslo podle počtu záznamů v DB. edit: PLUS - pomocí toho ID lze snadno propojit daného uživatele s hodnotami v jiné tabulce se sloupcem userID To by bylo IMHO možné i pomocí loginu. ID mi stejně příjde lepší - nabízí se i možnost změnit login uživatele. Čekal jsem spíše reakce někoho z druhého tábora. Každopádně, Sir Tom, díky za čas. Vždycky je fajn o něčem podiskutovat ;-) |
||
DJ Miky Profil |
#6 · Zasláno: 24. 10. 2011, 21:17:02
crash01:
„Při identifikaci pomocí ID když uživatele smažu, nemůžu již ostatním přiřazovat číslo podle počtu záznamů v DB.“ Proto se nechává se číslování na databázi (auto_increment), ta si ukládá další volné ID a nově vloženému záznamu ho přiřadí a inkrementuje. Při smazání některého uživatele se nic nemění, vznikne tedy "díra" a dalšímu novému uživateli se stejně přiřadí další o jedničku vyšší ID. Mám např. uživatele 1, 2, 3. Smažu uživatele č. 2, zůstane mi 1, 3. Přidám nového uživatele, ten dostane číslo 4 (ani 2, i když je volné, ani 3, i když je to počet záznamů + 1), budu mít 1, 3, 4. |
||
Joker Profil |
#7 · Zasláno: 24. 10. 2011, 22:59:06
Doporučuji ID.
Identifikátor by měl uživatele identifikovat jednoznačně a nejlépe být „navždy“ svázaný s tím konkrétním záznamem. A to z obou stran, tzn. jednak záznam by měl mít právě jeden identifikátor a jednak identifikátor by měl být přidělený právě jednomu záznamu. U jména nebo loginu často alespoň jeden směr neplatí, tzn. můžu potenciálně chtít uživateli změnit login, nebo třeba i když třeba přezdívka bude unikátní, můžu ji chtít po smazání uživatele přidělit někomu jinému (už proto že „hezkých“ přezdívek je omezený počet a je škoda aby smazaný uživatel tu přezdívku zablokoval navždy). Další výhoda je, že ten identifikátor se pak používá všude možně a s číslem nebo nějakým kódem se jednodušeji pracuje (nemusí se řešit různé speciální znaky, diakritika a podobně a práce s číselnými sloupci je obvykle rychlejší než s dynamickými textovými, například v MySQL když vazební tabulky obsahují jen sloupce pevné délky, mohou to být „rychlé“ MyISAM statické tabulky) |
||
had Profil * |
#8 · Zasláno: 25. 10. 2011, 14:35:48
...pokud bys ale chtěl odstranit zároveň duplicitu opakovaných registrací (že jeden člověk bude mít vícero účtů), pak doporučuju vytvořit nějaký sloupec, do kterého se budou vyplňovat souhrny více polí třeba ve tvaru "jmeno-prijmeni-rodnecislo" a nastavit mu hodnotu unique. Podle ID těžko poznáš, jestli není duplicita na více položkách. Navíc tohle může fungovat stejně jako ID.... nebo ne?? :-)
|
||
ninja Profil |
#9 · Zasláno: 25. 10. 2011, 15:13:46
had: Jaké má vaše řešení výhodu přec pouze unikátním sloupcem rodnecislo? Pokud tedy budeme brát jako dané, že každý uživatel má rodné číslo (což v případě cizinců neplatí).
|
||
Časová prodleva: 13 let
|
0