Den nøgle som genereres og sendes frem og tilbage mellem klienten og serveren skal bruges som identifikation af denne specifikke klients kurv på serveren, dvs. informationer om kurvens indhold skal gemmes i databasen og tilknyttes nøglen fra cookien. Tabellen med kurvdata kunne f.eks. se således ud:
kurv =
cookienoegle
+ produktid
+ antal
Desuden ville jeg nok vægle at lave en separat tabel til at holde styr på cookienøgler og deres alder, f.eks. i en tabel der ser således ud:
cookies =
cookienoegle
+ senestbrugtdato
hvor senestbrugtdato er det tidspunkt hvor brugeren sidst har forestpurgt en side på sitet. Således kan man lave et oprydningsjob der bare sletter alle cookies og dertil hørende kurve som er f.eks. en dag gamle.
Der vil være en ophobning af cookienøgler i databasen, hvis man ikke sørger for at rydde op i dem efterhånden som dels ordrer gennemføres, dels forældes.
Den første med at rydde op når en ordre gennemføres er relativ let at slippe afsted med, for der er ligesom en handling man kan koble oprydningen på (altså at ordren oprettes). Den anden skal man selv sørge for at sætte igang, men det kan evt. gøres vha. en "planlagt opgave" på serveren, eller med nogle passende intervaller, når serveren alligevel bliver kaldt af en bruger (dvs. i et eller andet script, som udføres jævnligt kan man tjekke databasen for om der er cookies som er blevet for gamle og så slette de kurve der har en vis alder).
Mht. cookien, så ville jeg personligt vælge at oprette en cookie som udløb når browseren lukkes, således brugeren kan anvende den samme kurv sålænge denne benytter samme browserinstans. Når browseren lukkes slettes brugerens cookie lokalt og den på serveren vil være "forældreløs og ligge til senere oprydning (jf. en af ovenfor beskrevne oprydningsstrategier).