2017-09-28 11 views
1

안녕하세요 저는 Aerospike를 사용하기 시작했습니다. 그래서 전자 상거래 플랫폼의 데이터 모델이 될 세부 정보가 필요합니다. 데이터 모델을 설계 할 수 없습니다. Aerospike에서 완벽하게 작동합니다.Aerospike의 특수 전자 상거래 사이트의 데이터 모델링

2> 제품 설정 (로그인 &를 들어 사용자의 기본 정보를 등록) (제품 정보를 저장하기위한

1.> 사용자 설정 : 여기

내 전자 상거래 플랫폼에 대한 기본적인 요구 사항입니다 이름과 이미지와 옵션과 색상 옵션 등)과 같은

3.> 주문 세트 (다음 사용자 순서의 기록)을 추적하기 위해

데이터베이스에 필요한 특수 설정에 대한 복잡한 요구 사항대로 :

1. 사용자가 공유 코드를 구입할 때마다 사용자가 친구와 가족과 공유하여 향후 혜택을 얻을 수 있습니다.

2. 누군가의 공유 코드로 제품을 구입 한 사용자는 "xyz"제품을 구입 한 세부 정보를 공유 코드의 소유자에게 양도해야하며이 사용자의 공유 코드도 그/그녀는 그/그녀의 친구와 공유 할 수있는 것을 생성합니다.

3. 또한 사용자는 자신의 코드를 공유 한 사람 수와 1 단계 사용자의 공유 코드 공유 코드에서 제품을 구입 한 사용자를 알아야합니다.

  1. 그래서 현재 사용자보다 2 레벨 아래의 사용자를 기록하고 싶습니다.
+1

안녕하십니까, Aerospike로 일반적인 데이터베이스 모델링을 수행하는 방법에 대한 공식 문서를 확인하십시오. http://www.aerospike.com/datamodeling/modeling-data-aerospike/. Aerospike는 추가 정보가 필요한 경우 데이터 모델링 과정 (가상 세션과 강의 세션 모두)을 제공합니다. http://bit.ly/_AS301 – Mnemaudsyne

답변

1

다중 레벨 마케팅 주문 관리 시스템을 모델링하려는 것 같습니다.

사용자 및 제품은 간단합니다. 레코드 TTL = 영원히 살고, 모든 세트를 삭제하지 마십시오. user_info, product_info가 업데이트 될 수 있습니다.

편의를 위해 각 제품 구입은 하나의 product_id입니다. PK는 레코드의 기본 키를 의미합니다.

User Set: {PK:user_id, user_info:{.....}} 
Product Set: {PK:product_id, product_info:{.....}} 
Order Set: { 
PK: order_id, 
order_details:{buyer:user_id, 
item:product_id, qty:..., 
share_code: "order_id:xyz", 
parent_code:"parent_order_id:abc" }, 
level1_orders:[List of order_ids], 
level2_orders:[List of order_ids] 
} 

share_code는 order_id : some_code를 구성하는 복합 문자열입니다. 첫 번째 주문 집합 (수준 0 주문)에 대해 parent_code는 0 일 수 있습니다. "213 : ABC"parent_code "112 : PQR"

공유 코드를 사용하여 임의의 사용자가 구입 한 경우 "213 : ABC"이 레벨 1 구매 ORDER_ID 310이다

는 ORDER_ID가 = 213, 주 코드 고려 {PK : 310, ... share_code : "310 : cde", parent_code : "213 : abc", ....} 순서로 항목을 만들고 다음 order_id = 213을 level1_orders 목록에 추가하고 310_id_id를 추가하십시오 order 213에 parent_code가있는 경우,이 경우에는 "112 : pqr"이고이 order_id에 310을 추가하여 Level2 순서 목록에서 order_id 112를 업데이트합니다.

이제 모델에 필요한 모든 정보를 얻었습니다.

참고 : 이것은 다중 레코드 업데이트 모델입니다. 클라이언트가 중간에 실패하거나 다른 나쁜 일이 발생하면 잠재적 인 불일치를 염두에 두십시오. 이러한 상황을 해결하기위한 고급 기술이 있습니다.

그러나 이것은 좋은 출발점 일 수 있습니다. 이것이 도움이되는지 알려주세요. 그것이 당신이 원했던 것과 다르다면 (당신의 파트 3은 나에게 분명하지 않다), 당신은 모델을 수정해야하지만 강조된 기술이 도움이 될 수있다.