Hehe, den som fattade något utav den topicen får ett extraliv utav mig. ;)
Iaf, här har ni något att bita i.
Jag skall göra ett system där man kan lägga in siter och sedan rösta på dem (lite som på www.snyggt.com).
Man måste registrera sig innan man får rösta för att vissa element inte skall rösta flera gånger. Så därför vill jag ha en funktion som registrerar på vilka siter (ID) som användaren har röstat på, och om han/hon har röstat innan så kan de bara uppdatera sitt betyg på siten. Detta för att det inte går att hålla bra koll på cookies. Frågan är bara hur jag skall lösa detta, och om det ens är värt kodningen?
Jag har två idéer på hur jag kan göra just nu. Antingen så tar jag och gör en ny tabell för varje användare som reggar (genom T-SQL) det har ju sina fördelar i att det är lätt att söka, ändra och uppdatera. Men jag kommer att få 1000 miljarders jälva tabeller överallt. Vilket ju känns ganska otympligt
Den andra är att emulera arrays, arrays verkar inte finnas i SQL Server (utav förklarliga skäl. Databaser är ju som anvancerade arrays ju!), genom att ta och ha ett varchar(fettomångasiffror)fält där man lägger till ID:t efter varje gång användaren har röstat på någon ny site. Så efter ett tag skulle det kanske se ut såhär: 0001000200420003 = Site med ID 1, site med ID 2, site med ID 42, site med ID 3 etc.
Sedan när man skall kolla detta så gör man en temporär tabell och loopar igenom denna varchar:en med SUBSTRING och tar ut alla värden och konverterar dem till int (och tar därmed bort onödiga nollor) varpå man sätter in dem i den temporära tabellen, sedan tar man och söker och ser ifall man hittar något som motsvarar id:t som skickades in i SP:n, droppar tabellen och ger resultat.
Sammanfattning: Vilken metod skall jag använda? Vilken metod tar minst på SQL databasen? Det säger ju sig självt att skapa en tabell för varje användare tar massa kraft och plats. Men å andra sidan så behöver man bara göra det en gång. Det som jag inte gillar med det är att man får hur många tabeller som helst som bara ligger å skräpar.
Den andra kan kännas som overkill i programmeringsväg kanske, plus att det kanske tar en stund att skapa alla dessa temporära tabeller och söka. Det bra med denna metoden är ju att det blir så mkt "renare" och snyggare. Kan ju vara jobbigt ifall jag kommer över 1000 siter gränsen dock. Då måste jag lägga till en 0:a på varje tal i varchar:en :(
DILEMMA!
Ett snabbt svar vore mkt uppskattat!
------------------
/Magnus aka Zaphod
www.designmodule.com
[EDIT: Dags att lära sig lite grammatik och meningskonstruktion kanske, magnus?]
[Redigerat av Zaphod den 17 apr 2001]