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

Problem sa stranim ključem i ON DELETE NO ACTION

[es] :: MySQL :: Problem sa stranim ključem i ON DELETE NO ACTION

[ Pregleda: 1435 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Tudfa
Jovicevic Vladimir

Član broj: 152699
Poruke: 384
*.dynamic.sbb.rs.



+3 Profil

icon Problem sa stranim ključem i ON DELETE NO ACTION23.05.2009. u 12:46 - pre 180 meseci
Imam tabelu comment koja cuva komentare korisnika i u njoj polje author_username(koja je veza sa tabelom user)

U bazi treba da ostane zapamćeno ime autora komentara i nakon brisanja korisnika.
Ovo mi treba jer komentari ostaju, i u okviru njihovog prikaza ostaje i ime autora.

Mislio sam da cu ovo postici sa ON DELETE NO ACTION, ali ovo radi kao da sam stavio RESTRICT, tj. ne dozvoljava brisanje ...

Da li postoji neki način da se ovo reši ili se nad poljem author_username ne moze postaviti fk ogranicnje ?

 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
217.24.31.*

Sajt: mysql.rs


+2377 Profil

icon Re: Problem sa stranim ključem i ON DELETE NO ACTION23.05.2009. u 13:20 - pre 180 meseci
ako imas tabelu user (user_id pk) i tabelu post (post_id pk) i za svaki post uvek imas 1 (ne nula, ne vise od jedan) user-a koji su autori da bi sacuvao integritet ili brises sve postove od autora kada brises autora, ili ne brises autora nego ga markiras "neaktvinim". Ako bi hteo da zadrzis strani kljuc onda bi morao da prebacis relaciju da za svaki post imas 1 ili 0 autora (dakle polje moze da bude NULL) i onda pre nego sto obrises autora, svim njegovim postovima setujes author id na NULL.

U slucaju da bi obrisao samo usera a ostavio stari id kao autor, sutra - kada dodas novog korisnika i on dobije id nekog obrisanog - on ce odjednom da dobije postove koji u stvari nisu njegovi.

Sve u svemu ... ako ti treba uz post info o autoru (tipa username, nick, ime/prezime ..) onda moras da ostavis autora u tabeli autor i samo ga markiras neaktivnog; ako ti ne treba nikakav info o korisniku (dakle pored posta ne pise ko mu je autor) onda mu setujes autor_id na NULL i obrises autora iz autor tabele

nadam se da nisam bio previse konfuzan ali ovo ti je cista teorija, a ja nisam bas iskusan u prenosenju znanja
 
Odgovor na temu

Tudfa
Jovicevic Vladimir

Član broj: 152699
Poruke: 384
*.dynamic.sbb.rs.



+3 Profil

icon Re: Problem sa stranim ključem i ON DELETE NO ACTION23.05.2009. u 14:24 - pre 180 meseci
Hteo sam da izbegnem user active jer mi je trebalo to jedno polje da se sacuva posle brisanja.
E sad, ovo username, ime, prezime sto si naveo je ustvari bolje, jer mogu da zatrebaju i druge informacije.
Plus da sam znao da je praktično NO ACTION == RESTRICT, uradio bih tako odmah. Eto opet manual.
Citat:
bogdan.kecman:...U slucaju da bi obrisao samo usera a ostavio stari id kao autor,
sutra - kada dodas novog korisnika i on dobije id nekog obrisanog - on ce odjednom da dobije postove koji u stvari nisu njegovi.

Ovo mislim da nije moglo da mi se desi, jer sam umesto author_id koristio author_username(da znam pricu integer vs varchar )
Citat:
bogdan.kecman:nadam se da nisam bio previse konfuzan ali ovo ti je cista teorija, a ja nisam bas iskusan u prenosenju znanja

Nije bilo nimalo konfuzno... To je to, hvala.
 
Odgovor na temu

vilyu
Web Developer
Beograd, Srbija

Član broj: 1188
Poruke: 444



+2 Profil

icon Re: Problem sa stranim ključem i ON DELETE NO ACTION25.05.2009. u 08:23 - pre 180 meseci
Ostaje samo pitanje da li narusavas prava korisnika kada ne obrises sve njihove podatke nakon momenta kada su oni trazili da im obrises nalog. Naravno, od svega toga mozes da se ogradis jednim lepim "Terms of use".
Pera električar 0637129710, BG, preporučujem.
 
Odgovor na temu

[es] :: MySQL :: Problem sa stranim ključem i ON DELETE NO ACTION

[ Pregleda: 1435 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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