RESTful API를 작성 중입니다. 리소스를 중심으로 데이터베이스 테이블을 디자인하는 가장 좋은 방법을 결정하기 위해 고심하고 있습니다.
처음에는 리소스 당 테이블을 사용하는 것이 좋지만 이제는 리소스 체인 아래로 테이블이 기하 급수적으로 커질 까 걱정됩니다.
예를 들어 사용자, 고객, 영업이라는 세 가지 리소스가 있다고 가정합니다. 사용자는 내 API의 가입자이고 클라이언트는 사용자 고객이며 판매는 각 클라이언트가 사용자 계정으로 구매 한 것입니다.
판매 리소스는 다음과 같이 액세스됩니다
GET /users/{userID}/clients/{clientID}/sales/{salesID}
따라서 10 명의 사용자가 있고 각각 10 명의 고객이 있고 각 고객에 대해 10 명의 판매가있는 경우, 우리가가는 리소스 체인의 크기가 멀수록 테이블 크기가 커집니다.
SQL이 큰 테이블에 대처할 수 있다고 확신하지만 읽기 및 쓰기로 인해 속도가 느려질 지 확실하지 않습니다. 위의 예는 그것을 설명하지 못할 수도 있지만, 제 API는 점진적으로 더 많은 쓰기와 읽기를 할 것이며 우리가가는 리소스 체인을 더 많이 읽을 것입니다. 따라서 데이터베이스에서 가장 큰 테이블을 작은 테이블보다 여러 번 읽고 쓰는 시나리오가 있습니다.
쿼리를 실행하기 전에 테이블을 조인해야합니다. 그 이유는 각 사용자가 같은 이름의 클라이언트를 가질 수 있기 때문입니다. 잘못된 클라이언트 데이터를 얻지 않기 위해 users 테이블과 clients 테이블은 {userID}로 조인됩니다. 이것은 또한 판매의 경우입니다. 큰 테이블을 결합하고 읽기 및 쓰기를 실행하면 속도가 느려질까요?