Autor Zpráva
crash01
Profil
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
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
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
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
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
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
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 *
...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
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í).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0