Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem spoljasnjeg kljuca.

[es] :: MySQL :: Problem spoljasnjeg kljuca.

[ Pregleda: 1615 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan M. Radovic
Web Developer
Pančevo

Član broj: 16959
Poruke: 743
77.46.164.*



+25 Profil

icon Problem spoljasnjeg kljuca.26.05.2008. u 13:03 - pre 193 meseci
Stavio sam za PK `user_id` TINYTEXT u tabeli 'users'
i sljaka ok, medjutim iz druge tabele 'buckets' kada hocu da stavim FK na user_id iz tabele users kaze sledece :

BLOB/TEXT column 'user_id' used in key specification without a key length
I don't need a girl for sex , All I Need is Binary and HEX
 
Odgovor na temu

stsung
NS

Član broj: 12899
Poruke: 432
213.137.123.*



+2 Profil

icon Re: Problem spoljasnjeg kljuca.26.05.2008. u 18:20 - pre 193 meseci
Pozd.

Poruka je dosta jasna. Ne mozhesh imati kljuch sa BLOB/TEXT poljem ako ne navedesh duzhinu tog polja u kljuchu. To znachi da ce kljuch uzimati u obzir samo prvih X karaktera takvog polja. Nisam siguran zbog chega ti je za polje USER_ID potreban tip TINYTEXT - u svakom sluchaju, nije preporuchljivo koristiti BLOB/TEXT polja u okviru FK, a i zbog optimizacije je preporuchljivo ovakve kljucheve imati samo sa ordinalnim tipovima podataka, kao shto je INT.


Svako dobro.
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
91.150.127.*

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Problem spoljasnjeg kljuca.27.05.2008. u 09:40 - pre 193 meseci
Slažem se sa Milanom. INT ključ je mnogo bolja ideja. Ali, ako baš mora primary key da bude tekstualan, daj koristi VARCHAR. TINYTEXT je isto što i VARCHAR 255 tako da ne vidim razlog za TINYTEXT kao primary ključ.
Takođe, sad sam u phpmyadminu probao da stavim primary key nad text poljem i ne mogu.

Pročitaj CREATE INDEX sintaxu i u najmanju ruku promeni polje u VARCHAR (255).
"Common sense is not so common." - Voltaire
 
Odgovor na temu

Milan M. Radovic
Web Developer
Pančevo

Član broj: 16959
Poruke: 743
79.101.216.*



+25 Profil

icon Re: Problem spoljasnjeg kljuca.05.06.2008. u 01:15 - pre 193 meseci
Citat:
Shinhan: Slažem se sa Milanom. INT ključ je mnogo bolja ideja. Ali, ako baš mora primary key da bude tekstualan, daj koristi VARCHAR. TINYTEXT je isto što i VARCHAR 255 tako da ne vidim razlog za TINYTEXT kao primary ključ.
Takođe, sad sam u phpmyadminu probao da stavim primary key nad text poljem i ne mogu.

Pročitaj CREATE INDEX sintaxu i u najmanju ruku promeni polje u VARCHAR (255).
Ucinjeno - Doduse u VARCHAR(20) ali to je to,jer mi i ne treba vise. Moralo je tipa textualno polje jer je rec o Username-u ,a bilo bi besmisleno koristiti i user_id tipa INT i username tipa TINYTEXT/TEXT..

HVALA!
I don't need a girl for sex , All I Need is Binary and HEX
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Problem spoljasnjeg kljuca.05.06.2008. u 08:51 - pre 193 meseci
Pa nije bas besmisleno. Ako ne koristis username kao PK vec koristis za user_id koji takodje linkujes u drugim tabelama kao FK onda imas mogucnost promjene username-a. Ukoliko bi u tvom slucaju zelio promjeniti username-a, znaci update-ovati PK morao bi (u slucaju da koristis MyISAM) sam se pobrinuti da se i ostale tabele koje koriste taj PK budu update-ovane. A u slucaju da koristis InnoDB, ne znam da li je uopste i izvodljivo update-ovanje PKa ukoliko je koristen kao FK u relacijama.

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

[es] :: MySQL :: Problem spoljasnjeg kljuca.

[ Pregleda: 1615 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.