aierong [원작]
BToC 사이트에서 처음으로 장바구니를 만드는 방법입니다. 장바구니에 데이터를 저장하는 방법을 정리했습니다.
방법 1: 세션을 이용하세요.
모든 유형의 데이터가 세션에 저장될 수 있습니다. 각 사용자는 고유한 세션 ID를 가지고 있으며, 이 ID는 다른 사용자의 장바구니 세션 데이터를 구별하는 데 사용됩니다. 많은 사용자가 장바구니를 사용하면 먼저 많은 양의 서버 리소스를 차지하게 됩니다. 세션에는 작은 결함이 있습니다. 사용자가 COOKIE를 닫으면 세션 사용이 더 많아집니다.
물론 ASP에서는
문제가 있습니다
.NET에 세션 데이터를 저장하는 방법에는 두 가지가 있습니다. 하나는 세션 데이터를 저장할 다른 서버를 지정하는 것인데, 이는 WEB 서버의 운영 오버헤드를 효과적으로 공유할 수 있습니다.
다른 하나는 MS SQL에 세션 데이터를 저장하는 것입니다. MS SQL은 로컬 임시 테이블을 사용하여 구현됩니다. MS SQL도 각 로컬 임시 테이블에 고유 ID를 할당하는 것
같습니다. 다른 사용자의 다른 세션 데이터를 구별하기 위한 ID입니다. 그러나 이 방법은 데이터베이스에 임시 테이블을 자주 생성하고 삭제하면 데이터베이스에 너무 많은 오버헤드가 발생하므로 권장하지 않습니다.
방법 2: 데이터베이스에서 테이블(ShoppingCart)을 사용합니다.
제가 가장 좋아하는 구현 방법은
테이블에 여러 기본 필드가 있다는 것입니다.
CartId 장바구니 ID(고유)
ID 제품 ID(고유)
Qty 사용자가 구매한 상품 수량
CreateDate 장바구니 생성 시간
이 테이블의 CartId 필드는 사용자가 로그인한 경우 로그인한 사용자의 로그인 이름 ID를 테이블에 저장할 수 있습니다. 사용자가 로그인하지 않고 장바구니를 사용하면
장바구니 ID로 GUID(Globally Unique Identifier)를 할당할 수 있습니다.
이 방법에도 몇 가지 결함이 있습니다. 첫째, 대량의 유효하지 않은 데이터가 발생합니다. 우리 모두 알고 있듯이 장바구니를 사용하는 사람들은 결국 상품을 확인하고 구매하지 못할 수도 있습니다. 하지만 장바구니를 사용하려면
, 로그인하지 않은 사용자가 사이트를 떠나자마자 테이블에 있는 그의 데이터는 로그인할 때 낭비되는 데이터 더미가 됩니다. 다음번에는
그에게 새로운 CartId 장바구니 ID를 할당합니다. 낭비 데이터가 있는 경우 이 테이블을 수시로 유지해야 합니다(CreateDate 및 CartId 필드를 사용하여 결정). 유효하지 않은 데이터) 수동으로 호출할 수도 있습니다. MS SQL이 대신 실행되면 JOB이 자동으로 프로세스를 호출하여 낭비 데이터를 지웁니다.
당기기의 단점에 대해 이야기하면서 이 방법의 장점에 대해서도 이야기해야 합니다.
1. 시스템 리소스를 덜 차지하므로 데이터베이스를 한 컴퓨터에 배치하고 웹 서버를 다른 컴퓨터에 배치하여 시스템 리소스를 최대한 활용할 수 있습니다.
2. 장바구니에 있는 데이터는 효과적으로 유지될 수 있습니다. 고객이 쇼핑 중에 갑자기 다른 이유로(충돌 등) 쇼핑 스테이션을 떠난 경우에도 장바구니에 있는 데이터는 효과적으로
유지됩니다
. 장바구니는사용자가 다시 상품을 구매하는 것을 방지하기 위해 보관된 데이터도 있습니다. (이 기능은 로그인한 사용자의 장바구니에만 유효합니다.)
장바구니를
구현하는 데 세션이 사용되는 경우., 모든 사용자가 사이트를 떠나면 장바구니에 있는 모든 데이터가 손실됩니다. 실패는
쉽습니다. 방금 ASP에 접속했기 때문에 이를 요약했습니다. NET에 대해 잘 모르겠습니다. 장바구니를 구현하는 다른 방법이 있을 수 있습니다. 모두에게 조언을 해주시기 바랍니다.