Primary key

Kaikissa esimerkeissä ja harjoituksissa joita olen tehnyt ja tutkinut niin primary keynä on ollu jokin numero. Onko mahdollista käyttää vaikka jotain nimeä primary keynä? Jos vaikka olisi Käyttäjät taulu jossa olisi primary keynä KäyttäjäNimi ja muina tietoina vaikka Salasana. Eikö se silloin toimi, jos KäyttäjäNimi on not null ja unique?
22031
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

integer on vaan ziljoona kertaa nopeampi, joskaan sillä nyt ei pikkutauluissa niin suurta merkitystä ole.

Äänestä

Tämä on nyt vähän myöhässä mutta laitetaan nyt kuitenkin..

Voi olla ja tuossa tapauksessa kannattaakin olla. Ellet sitten halua että usealla käyttäjällä on sama käyttäjätunnus ;) Voit toki tehdä myös erillisen rajoitteen uniikkiarvoille, mutta miksipä vaivautua kun pääavain hoitaa sen jo automaattisesti?

Tuollainen on ns. "luonnollinen avain" eli sillä avaimella itsellään on jo merkitys. Jos sopivaa avainehdokasta ei ole, silloin usein tehdään ns. "surrogaattiavain" tai "keinoavain" juoksevasta numerosta. Tämmöisellä numerolla ei sitten olekaan mitään tekemistä reaalimaailman kanssa ja koko sen olemassaolon tarkoitus on yksilöidä rivit.

Luonnollisia avaimia ei kuitenkaan kannata viljellä miettimättä tarkoin kentän pysyvyyttä. Pääavainten arvoja ei pitäisi mennä kovin hevillä muuttelemaan vaikka kyllä sekin tavalla tai toisella aina onnistuu. Tässä tapauksessa se tuskin on ongelma, ellet sitten halua antaa käyttäjille mahdollisuutta muutella omaa tunnustaan.

Nopeuden puolesta sillä ei ole käytännössä mitään merkitystä.

Äänestä

Kommentoi aloitusta


awdrgyjilp kirjoitti:

Kaikissa esimerkeissä ja harjoituksissa joita olen tehnyt ja tutkinut niin primary keynä on ollu jokin numero. Onko mahdollista käyttää vaikka jotain nimeä primary keynä? Jos vaikka olisi Käyttäjät taulu jossa olisi primary keynä KäyttäjäNimi ja muina tietoina vaikka Salasana. Eikö se silloin toimi, jos KäyttäjäNimi on not null ja unique?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu