2010-08-02 3 views
2

저는 장바구니가없는 프로젝트에 대한 조사를하고 있습니다. 장바구니가 mvc에서 처리되는 것처럼 보였습니다. 프로필에 저장하고 나중에 주문이 완료되면 db에 저장하고 클래스에 [Serializable]을 저장하는 것입니다.프로필에 어떤 단점이있는 쇼핑 카트가 있습니까? 프로필 마이그레이션?

내 질문에 프로필과 함께 이렇게하는 것이 좋지 않습니까?

편집
는 내가 프로필에 카트를 절약 단점을 발견 생각하고는 인증 된 사용자에 대한 익명의 마이그레이션입니다. 현재 웹 응용 프로그램 프로젝트에서 작업 중이므로 마이그레이션 솔루션을 찾지 못했습니다 (프로필 공통으로 글로벌). 최근에 유용한 정보를 찾았지만 여기서 한 가지만 묻고 싶습니다.

발견 한 정보는 프로필의 속성을 가져오고 설정할 수 있지만 마이그레이션 부분은 아직 해결되지 않았습니다. 누구든지 올바른 방향으로 나를 가리킬 수있는이 또는 솔루션에 대한 조언을 얻었습니까?

+0

나는 이것을했고 그것을 반대했다. 그것은 확장되지 않습니다. – plntxt

답변

0

이것은 고전에 따라 다릅니다.

크기는 내가 볼 수있는 가장 큰 원인입니다.

개체의 크기에 따라 다릅니다. 실제로 사용자 카트에있는 ProductId 목록이 필요할 때 매우 큰 개체를 가질 수 있습니다. 몇 바이트에 불과한 바이트를 할당 할 수 있습니다.

이런 식으로 뭔가를하고 있었다면 쇼핑 카트에 제품 목록을 저장하면됩니다. 필요한 정보가 더 많을 수도 있지만 (Qty와 같음) 가능한 한 작게 읽기/쓰기를 유지하려면 최소한을 저장하려고합니다.

클래스를 Seialize 할 때 Xml을 사용하면 각 속성에 대한 요소를 가져옵니다. 바이너리는 조금 더 콤팩트합니다 (내가 선택할 수있는 것입니다).

+0

2 개의 클래스 ShoppingCart 및 ShoppingCartItem으로 많은 것이 될 것입니다. shoppingCartItem은 수량 및 제품 ID 일뿐입니다. 나는 내 web.config에서 serializeAs = "Binary"를 할 것이라고 생각했다. –

+0

이것을 구현할 때'Session122 '에 저장된'Dictionary'(key = product id, value = quantity)을 사용하고'Add()','Remove()'와 같은 정적 메소드를 가진 래퍼 클래스'ShoppingCart'를 사용했다.)'등 – Necros

0

추가 단점은 세션 길이입니다. 세션 시간이 초과되면 카트를 어떻게 처리할까요?

+0

세션 시간을 어떻게 설정할 수 있습니까? 나는 장바구니를 db 우량권에 저장하고 쿠키로 처리하는 것을 알고 있습니다. 하지만 unfortunaly 나는 mvc와 쿠키와 좋은 예를 발견하지 못했습니다 –

관련 문제