Hej.Spara personalization-data i db eller xml?
Jag håller just på att skissa på ett nytt projekt.
Jag skall göra en sida där man som inloggad själv skall kunna påverka vad (och var) som visas på sidan. Det kommer bli lite som sådant som man kan göra med ASP.NET´s Personalization (tror jag), typ Start.com (kommer dock inte att använda mig av ASP.NET´s inbyggda funktioner utan kommer nog hådkoda javascript och ajax-delen själv).
På sidan skall man alltså kunna bli medlem och det är först när man loggat in man har möjlighet till att lägga till innehåll på sidan och använda sig av drag & drop funktionerna för att få sidan att presentera informationen så som man önskar.
Det jag undrar över är på vilket sätt man skall spara uppgiterna om var (och vad för innehåll) en viss besökare valt att visa ett vissat innehåll.
Skulle det gå att skapa en xml-fil för varje medlem (skapas vid registreringen), typ användarID.xml? Sedan sparar man de ändringarna medlemmen gör som har med presentationen av informationen på sidan att göra. Vad händer om sidan får många medlemmar vilket genererat tusentals sådanahär xml-dokument i samma mapp. Kommer det ta längre tid för serverna att hitta till rätt dokument att läsa från/skriva till?
Det andra alternativet är att spara alla uppgifterna i en databas. Det känns lite dumt att använda en databas för detta just för att det kan bli en jädrans massa databas förfrågningar bara för att användare ändrar smågrejer.
----UPPDATERADT---------
Kom ock tänka pe en annan lösning.
Man skulle ju kunna spara datan till både en cookie och till databas. Så fort man gör någon personalization-ändring så sparar man det till både databasen och till en cookie. Man sparar också när medlemmen senast gjorde någon ändring. När sidan skall "sättas ihop" kollar man först om det finns någon kaka och vad den har för datum. Finns den inte skapas en utifrån datan i databasen. Finns det en kaka jämför man datumet i den (som säger när en personalization-ändring senast ägde rum) med datumet i databasen. Är datumet i databasen nyare än det i kakan uppdaterar man kakan med datan från databasen. Om de har samma datum läser man ifrån kakan.
Gör man på detta sätt blir det i och för sig en del databas annrop. men inte lika många. Det blir en hel del UPDATE och INSERT men färre SELECT än om man sippat i att använda någon kaka.