/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Slette data med relationer til andre data?
Fra : wheeeeeeee


Dato : 13-04-02 11:33

Lad os fx sige at vi har en webside med et forum, hvor man har nogle brugere
der kan skrive i forum'et. Brugerne er registreret i et table og de posts de
skriver er skrevet i et andet, hvor der er fremmednøgler til
brugerentiteten.

Hvad hvis man ønsker at slette en bruger. Hvis man sletter den row i
brugerentiteten, hvor han er, så vil der opstå problemer når man skal vise
navnet på brugeren, når hans gamle posts skal vises.

Hvad skal man gøre? Beholde brugeren, men have et lille "activated" felt,
hvor brugeren ikke kan logge ind, men hans row beholdes, så man stadig kan
se hans posts. Man kunne også bare slette alt hvad der havde med ham og
gøre, men det ville være problematisk med mange relationer og ikke altid
ønskværdigt.



 
 
Jakob Andersen (13-04-2002)
Kommentar
Fra : Jakob Andersen


Dato : 13-04-02 12:45

"wheeeeeeee" <uuuiiiiii.this.is.not.a.real@ddress.nonnreeaaldomain.com>
wrote in message news:a995dv$7k9$1@sunsite.dk...
>Hvad skal man gøre? Beholde brugeren, men have et lille "activated" felt,

Dette er nok vejen medmindre du ønsker at slette alle indlæg. ( Hvis dette
overhovedet er muligt uden at ødelægge trådningen i dit forum)

--
Jakob Andersen



-Martin- (14-04-2002)
Kommentar
Fra : -Martin-


Dato : 14-04-02 02:39

On Sat, 13 Apr 2002 12:32:51 +0200, "wheeeeeeee"
<uuuiiiiii.this.is.not.a.real@ddress.nonnreeaaldomain.com> wrote:

>Lad os fx sige at vi har en webside med et forum, hvor man har nogle brugere
>der kan skrive i forum'et. Brugerne er registreret i et table og de posts de
>skriver er skrevet i et andet, hvor der er fremmednøgler til
>brugerentiteten.
>
>Hvad hvis man ønsker at slette en bruger. Hvis man sletter den row i
>brugerentiteten, hvor han er, så vil der opstå problemer når man skal vise
>navnet på brugeren, når hans gamle posts skal vises.
>
>Hvad skal man gøre? Beholde brugeren, men have et lille "activated" felt,
>hvor brugeren ikke kan logge ind, men hans row beholdes, så man stadig kan
>se hans posts. Man kunne også bare slette alt hvad der havde med ham og
>gøre, men det ville være problematisk med mange relationer og ikke altid
>ønskværdigt.
>

Man kan vel bare lave et eller andet hvis brugeren med ID xxx ikke
findes mere ja så ska databasen bare udskrive "Brugeren er slettet"
eller sådan noget lign. ?

Hvis du sletter alle de posts som har med brugeren at gøre, så går
trådningen nok ikke op til sidst, hvis du ellers har lavet det med
tråde :)

Det er det der er det smarte med SQL databaser og autonummering at den
altid tager et nyt højere ID og ALDRIG bruger et ID "midt inde" i
databasen. men det ved du vel godt :)

Jonas Sommer Nielsen (27-04-2002)
Kommentar
Fra : Jonas Sommer Nielsen


Dato : 27-04-02 01:07

> Man kan vel bare lave et eller andet hvis brugeren med ID xxx ikke
> findes mere ja så ska databasen bare udskrive "Brugeren er slettet"
> eller sådan noget lign. ?

Det afhaenger helt og holdent af databasen. Hvis man har sat relationer op
saa vil den ikke tillade at man sletter en post som er relateret til fra
andre tabeller.

Umidderbart ville jeg selv vaelge at lave et Tombstone felt paa brugerne,
hvis dette er markeret er brugeren slettet og kan ikke bruges. Det goer at
man er noedtil at kode efter det i hele systemet og at man ikke senere vil
kunne oprette en ny bruger med samme ID som en tidligere slettet bruger.
Hvilket saa maa siges at vaere et smags sag om det er fedt eller ufedt.

Men det giver ogsaa den feature at man altid vil kunne "reetablere" en
slettet bruger.


> Det er det der er det smarte med SQL databaser og autonummering at den
> altid tager et nyt højere ID og ALDRIG bruger et ID "midt inde" i
> databasen. men det ved du vel godt :)

Det er jo saa en sandhed med modifikationer. Det er absolut kun forbi at
mange SQL servere har dette som standard. Det er noget man kan lave om paa.
Og det er ABSOLUT ikke noget man bare boer regne med, da man ellers har det
med at komme gursomt galt afsted den dag man loeber ind i det modsatte. (og
det er den slaks smaa fejl man ikke altid lige opdager foerstedag systemet
koere)


/Hvid







-Martin- (27-04-2002)
Kommentar
Fra : -Martin-


Dato : 27-04-02 12:54

On Sat, 27 Apr 2002 02:07:16 +0200, "Jonas Sommer Nielsen"
<news@1d.dk> wrote:

>> Man kan vel bare lave et eller andet hvis brugeren med ID xxx ikke
>> findes mere ja så ska databasen bare udskrive "Brugeren er slettet"
>> eller sådan noget lign. ?
>
>Det afhaenger helt og holdent af databasen. Hvis man har sat relationer op
>saa vil den ikke tillade at man sletter en post som er relateret til fra
>andre tabeller.
>
>Umidderbart ville jeg selv vaelge at lave et Tombstone felt paa brugerne,
>hvis dette er markeret er brugeren slettet og kan ikke bruges. Det goer at
>man er noedtil at kode efter det i hele systemet og at man ikke senere vil
>kunne oprette en ny bruger med samme ID som en tidligere slettet bruger.
>Hvilket saa maa siges at vaere et smags sag om det er fedt eller ufedt.

Nej det er rigtigt nok, at en relation ikk virker hvis det ene felt
mangler :) Lige en tanketorsk :)

Dog så ville jeg lave det sådan at hvis en bruger bliver slettet, så
sletter den ALLE oplysninger dog ikk ID'et og måske sætte yes i feltet
slettet.

Så er brugeren jo faktisk slettet og man kan ikke se hvem det er eller
har været "den gang"

For jeg har den holdning at når en bruger VIL slettes så SKAL brugeren
også VÆK med alle oplysninger!

>
>Men det giver ogsaa den feature at man altid vil kunne "reetablere" en
>slettet bruger.

Tjaa ... meeen det syns jeg ikk skal være en mulighed eller jo måske
en uges tid eller et par dage fx. MEN ikke i "flere" år

>
>
>> Det er det der er det smarte med SQL databaser og autonummering at den
>> altid tager et nyt højere ID og ALDRIG bruger et ID "midt inde" i
>> databasen. men det ved du vel godt :)
>
>Det er jo saa en sandhed med modifikationer. Det er absolut kun forbi at
>mange SQL servere har dette som standard. Det er noget man kan lave om paa.
>Og det er ABSOLUT ikke noget man bare boer regne med, da man ellers har det
>med at komme gursomt galt afsted den dag man loeber ind i det modsatte. (og
>det er den slaks smaa fejl man ikke altid lige opdager foerstedag systemet
>koere)

Hmm jeg har endnu ikke set en database som giver et ID inde midt i
tabellen?

Har du et eks. på en database der gør det?

Jeg mener da at i SQL standarden står der at databasen SKAL give et
højere id ?

Barnabas (15-04-2002)
Kommentar
Fra : Barnabas


Dato : 15-04-02 07:36

Så vidt jeg ved skal man iflg. registerlovgivningen slette en bruger,
hvis brugeren specifikt beder om det. Dvs. det er ikke nok at markere
vedkommede som "passiv".

Du kunne lade være med at lave en foreign key til msg. tabellen
derefter kan du slette brugere uden at slette deres beskeder.

Så må du markere beskeder uden tilhørende brugere som "Unknown user" i
dit system eller din web side.

Jens Gyldenkærne Cla~ (15-04-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 15-04-02 10:31

barnabasdk@yahoo.com (Barnabas) skrev:

> Så vidt jeg ved skal man iflg. registerlovgivningen slette en
> bruger, hvis brugeren specifikt beder om det. Dvs. det er ikke
> nok at markere vedkommede som "passiv".

Hvis brugeren beder om at blive slettet med henvisning til
registerlovgivningen, ville jeg nok også slette hans indlæg. For
ikke at skabe huller i en debatkæde kunne man i stedet for at
slette posterne blot slette selve teksten og erstatte den med
f.eks. "brugeren slettet - tekst mangler".

> Du kunne lade være med at lave en foreign key til msg.
> tabellen derefter kan du slette brugere uden at slette deres
> beskeder.

Et alternativ kunne være at have et brugerID til at "opsamle"
slettede poster. Så kan man stadig drage fordel af stærke
relationer - og hvis en bruger skal slettes, flytter man først hans
indlæg til "slettet"-brugeren.

--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)

wheeeeeeee (15-04-2002)
Kommentar
Fra : wheeeeeeee


Dato : 15-04-02 11:42

> Så vidt jeg ved skal man iflg. registerlovgivningen slette en bruger,
> hvis brugeren specifikt beder om det. Dvs. det er ikke nok at markere
> vedkommede som "passiv".

Systemet er ikke i første omgang henvendt udelukkende på offentlige forum
systemer. Det er et mere generelt system til at adminstrere brugere, også
til at folk fx kan logge ind og redigere noget tekst på en hjemmeside (CMS).
Men jeg vil gerne have at det også kan bruges til et forum på et offentligt
dansk site. Derfor vil jeg meget gerne have den slags ting gjort klart.

Hvad ligger der i at brugeren skal slettes? Hvis nu man sletter alle
informationer (evt. email adresse, rigtigt navn, m.v.) bortset fra
brugernavnet?

> Du kunne lade være med at lave en foreign key til msg. tabellen
> derefter kan du slette brugere uden at slette deres beskeder.
>
> Så må du markere beskeder uden tilhørende brugere som "Unknown user" i
> dit system eller din web side.

Ja, hvis loven siger at man kan kræve at få slette informationer om ens
person, kan jeg godt se at det er smart. Men man kan vel ikke kræve fx at få
slettet alle de indlæg man har lavet i et forum. Jeg kunne da heller ikke
henvende mig til min ISP eller google og kræve at få slettet alle spor efter
mig på usenet?

Og hvor personligt, er et brugernavn? Hvis nu databasen ikke var så
normaliseret, og man skrev brugernavnet ind i hver row med et forum indlæg.
Ville man kunne kræve at ens indlæg blev slettet, inkl brugernavn? Det
svarer jo til det der bliver gemt på google.

Ellers må jeg vel have en "slettet-bruger-bruger" som Jens G.C. foreslår.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste