2013-05-27 5 views
0

webservice에 http 호출을 보내고 응답을 캡처하고 구문 분석하는 스크립트가 있습니다.http 트랜잭션 용 데이터베이스 스키마

모든 트랜잭션에 대해 다음 데이터를 관계형 데이터베이스에 저장하고 싶습니다.

  1. HTTP 요청 시간이
  2. HTTP 요청 헤더
  3. HTTP 응답 시간
  4. HTTP 응답 코드
  5. HTTP 응답 헤더
  6. HTTP 응답 콘텐츠

나는 데 힘든 이것을위한 스키마 시각화. 초기 생각은 2 개의 테이블을 만드는 것이 었습니다.

Table 'Transactions': 
1. transaction id (not null, not unique) 
2. timestamp (not null) 
3. type (response or request) (not null) 
3. headers (null) 
4. content (null) 
5. response code (null) 

'거래 ID는'헤더 텍스트와 타임 스탬프를 결합에서 파생 된 검사의 일종이 될 것입니다.

이 트랜잭션 ID를 계산하는 이유는 2 개의 트랜잭션을 구별 할 수있는 고유 ID를 갖는 것이지만 동시에 요청을 응답과 연결하는 데 사용됩니다.

이 표는 어떤 용도로 사용됩니까? 스크립트는 5 분마다 실행되고 모든 것을 DB에 기록합니다. 또한 스크립트가 실행될 때마다 스크립트가 마지막 트랜잭션이 성공한 시간을 확인합니다. 또한, 하루가 끝날 때 스크립트는 그날 이루어진 모든 트랜잭션에 대한 요약을 생성하고 이메일로 보냅니다.

이 디자인을 개선 할 수있는 아이디어는 있습니까? 어떤 정규화 및/또는 최적화 기술을이 스키마에 적용해야합니까? 이걸 두 개 이상의 테이블로 나누어야합니까?

답변

0

NoSQL 접근 방식을 사용하기로 결정 했으므로 작동했습니다. 중고 MongDB. 문서 구조와 함께 제공되는 유연성과 고정 된 수의 속성을 갖춰야 할 필요가없는 것은 정말 도움이되었습니다. 아마도이 문제에 대한 최선의 해결책은 아니지만 복합 인덱스를 사용하여 성능을 최적화 할 수있었습니다.

관련 문제