>  기사  >  백엔드 개발  >  주문 테이블은 사용자 ID 또는 주문 ID를 기준으로 테이블로 구분됩니까?

주문 테이블은 사용자 ID 또는 주문 ID를 기준으로 테이블로 구분됩니까?

WBOY
WBOY원래의
2016-10-17 09:30:051745검색

주문 테이블은 사용자 ID 또는 주문 ID를 기준으로 테이블로 구분됩니까?

답글 내용:

주문 테이블은 사용자 ID 또는 주문 ID를 기준으로 테이블로 구분됩니까?

사용자는 주문 ID에 따라 여러 주문을 나누어 받을 수 있습니다

uiserid와 orderid는 일대다 관계이므로 order 테이블의 기본 키는 orderid이고 외래 키는 userid입니다

orderid를 사용하여 테이블을 분할할 때의 장점은 각 테이블의 크기가 크게 다르지 않다는 것입니다. 예를 들어, 주문량이 특정 값에 도달하면 시간에 따라 분할하거나 새 테이블을 생성한다는 단점이 있습니다. userid는 쿼리할 때 검색 조건으로 자주 사용되므로 Union 작업이 많이 발생합니다.
userid를 사용하면 상황은 반대가 됩니다. 테이블 크기는 일정할 수 없으며 시간이 지남에 따라 계속 커집니다. 그러나 쿼리가 단일 테이블이므로 매우 빠르다는 장점이 있습니다.
그래서 제 개인적인 생각으로는 nosql을 캐싱에 사용하지 않는다면 userid를 사용하여 테이블을 나누는 것을 추천합니다. 성능을 추구한다면 캐싱을 위해 memcache를 사용할 수 있습니다. orderid를 사용하여 테이블을 분할하더라도 두 번째 쿼리 중에 캐시를 직접 읽기 때문에 속도가 매우 빠릅니다. 자주 주문을 확인하는 사용자에게 친숙할 것입니다.

orderid를 사용하여 테이블 분리

  1. orderid는 저장하기 쉽고 데이터베이스 로드가 비교적 일관됩니다. 그러나 데이터 집계는 더 어렵습니다.

  2. 사용자 ID는 집계하기 쉽습니다. 그러나 핫스팟 배포 문제가 발생하여 데이터 테이블 크기가 일관되지 않게 됩니다.

직접 선택하세요

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.