Maneira Ideal de armazenar informações do produto em carrinho de compras em asp.net
a minha estrutura actual é que, sempre que o utilizador salva o produto, coloco o produto no datável e datável para a sessão, por isso, até a sessão não estar cronometrada, o utilizador pode ter a lista que salvou.
no entanto, eu aumentei o tempo limite de sessão para 600mins (10 horas), mas a minha preocupação é, É esta é a melhor abordagem para armazenar informações de carrinho de compras, porque se há dizer para exemplo 1000 usuários acessando o site simultaneamente, haverá 1000 objeto de sessão criado no servidor, não irá deteriorar o desempenho do meu site.
Eu não posso armazená-lo na base de dados porque se o Usuário é Anônimo Eu Não tenho a coisa única sobre o usuário, dessa forma, se 1000 usuários estão acessando o site, todos os produtos vão se fundir, eu não serei capaz de obter o produto salvo pelo usuário atual.
Há outra melhor abordagem para este problema?1 answers
- armazenar a cesta inteira no cookie (basicamente lista de ID do produto + quantidade, mais dependendo das suas necessidades/estratégia) ou outras técnicas (por exemplo, localStorage).
- guarde um ID único no cookie e guarde o cesto na base de dados (tabela temporária) com o ID único cookie como identificador. Uma vez que o usuário logar no sistema você move esses dados para a tabela de cesto do Usuário.
Você pode facilmente alterar o tempo de expiração dos cookies (ou removê-lo) sem afetar o desempenho geral do seu servidor. Para IDs pode utilizar Guid.NewGuid()
.
Actualizar:
Mais detalhes sobre a minha segunda solução - cenário:- página web da visita do utilizador
- você cria um cookie Sem data de validade: cartId com valor {[[0]} (o nome e o valor dependem de si).
- Clique Do Utilizador em"Buy"
- pegue no lado do servidor de cookies e adicione a cartId,produto/Quantidade à tabela "AnonymousBasket" Imagine que o usuário sai do site e volta um mês depois o cookie ainda estará aqui. Se o utilizador anónimo for ao seu cesto, poderá obter os seus produtos e quantidades com base nos seus produtos. sobre o valor do cookie.
- Se o utilizador se ligar, remova o cookie e mova os dados da tabela "AnonymousBasket" para "Basket"
- Agora o seu utilizador logado pode processar até à saída