webForumDet fria alternativet

Mest optimalt?

7 svar · 341 visningar · startad av webzonen

webzonenMedlem sedan feb. 2001390 inlägg
#1

Jag sitter och pillar med en demo-community. Nu undrar jag vad som är mest optimalt, End egen tabell för kompisar eller samma tabell som medlemmar med en egen spalt och separera kompisarna med komma (,) eler liknande tecken. Och om det sistnämda är bäst, hur gör jag då för att updatera, separera varje kompis?
det finns många här som har gjort communitys, någon som vet?

------------------
En sak livet lärt mig är att idioterna oftast har rätt

[Redigerat av webzonen den 27 dec 2001]

nicclasMedlem sedan feb. 20001 050 inlägg
#2

Jag röstar för att du gör en egen tabell för "kompisar" som kopplas med användarna via användarens ID i användar tabellen.

Kanske blir det mer belastning på din databas-server på detta sätt, om många har inga eller få kompisar, men det blir mycket enklare att programmera (och bättre skalbarhet, som det heter ;) )

/nicclas - http://mina.nyhetsrubriker.net

webzonenMedlem sedan feb. 2001390 inlägg
#3

säker? vad menar du med skalbarhet? och det blir väll inte så mycket svårare att ta ut om man har det i samma tabell som användarnas inloggnings uppgifter... skall höra mig för med dem som har community´s tror jag

------------------
En sak livet lärt mig är att idioterna oftast har rätt

nicclasMedlem sedan feb. 20001 050 inlägg
#4

säker? Ja. Men detta är bara vad jag tycker ;) Du vet bäst, det är din commmunity, och du som skall programmera/underhålla.

Bättre skalbarhet kan i detta fall innebära att om du plötsligt vill lagra mer data är bara "kompis-numret" så är det oftast enklare att lösa det med den separata tabellen.

spangoMedlem sedan juni 20008 205 inlägg
#5

och det blir väll inte så mycket svårare att ta ut om man har det i samma tabell som användarnas inloggnings uppgifter

Det blir krångligare (om än möjligt), sämre och långsammare om du har kompislistan som en kommaseparerad sträng i användartabellen än om du gör en separat tabell. Det är en garanti.

Om du skulle oroa dig för prestandan säger jag som LarsG brukar göra: Indexera.

------------------
Vaddå HTLM design? Jag e UTVECKLARE för fan! /mrblonde

M@rtinMedlem sedan dec. 19992 085 inlägg
#6

Helt kalrt bäst med en egen tabell.

Att separera alla med komma blir enormt slött när medlemmarna börjar ha över 100 kompisar.

------------------
//M@rtin || Peachy.nu\\

ni taLar Bra laTiN

BrimbaMedlem sedan dec. 19995 875 inlägg
#7

1:a normalformen säger: Varje attribut har endast ett värde.

Med det menas att du inte skall lägga flera värden i samma "cell".

Enklare om du delar upp tabellerna, eftersom det troligen kommer att ta mindre plats och bli mycket snabbare.

Exempelvis om man har en kunddatabas och vill veta vilka intressen kunden har, så kan man egentligen göra på tre sätt:

  1. 1 kolumn som heter "fldIntressen"
    Värdet i den kolumnen kan se ut såhär:

Golf, Innebandy, Motorsport

  1. Flera kolumner som herter "fldIntresse1", "fldIntresse2", "fldIntresse3"

Där varje kolumn har ett värde.

fldIntresse1 = Golf
fldIntresse2 = Innebandy
fldIntresse3 = Motorsport

  1. En ny tabell där du kopplar samman nyckeln och gör en främmande nyckel i Intressetabellen. Exempelvis:

tabKund
id - nyckel
namn - Text

tabIntresse
id - främmande nyckel mot tabKund.id
intresse - text

Det skall vara en 1:N relation och då kan det exmeplvis bli såhär:

5 Golf
5 Innebandy
5 Motorsport

Exempel #1 och #2 är fel att göra.

Exempel #1 bryter mot 1:a Normaliseringsformen och exempel #2 bryter mot 4:e

Det sista exemplet blir det bästa, då det är mycket enkelt att lägga till/ta bort nya poster, och man blir inte beroende av att en kund bara kan ha 3 Intressen.

Lycka till!

------------------
Mvh
Patrik aka Brimba

edebroMedlem sedan aug. 2001261 inlägg
#8

jepp, håller med. En separat tabell är nästan ett måste. För det blir jävligt bökigt om man t ex vill ta bort en kompis som är t ex i mitten av strängen.

------------------
Mikael Edebro
http://divx.edebro.net

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)