2013-05-27 5 views
0

У меня есть сценарий, который делает HTTP-вызов веб-сервису, фиксирует ответ и анализирует его.схема базы данных для транзакций http

Для каждой транзакции я хотел бы сохранить следующие фрагменты данных в реляционной БД.

  1. время запроса HTTP
  2. HTTP заголовки запроса
  3. HTTP Время отклика
  4. код ответа HTTP
  5. заголовки ответа
  6. HTTP
  7. 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) 

«Идентификатор транзакции» будет своего рода контрольной суммой, полученной из объединения метки времени с текстом заголовка.

Причина, по которой я могу вычислить этот идентификатор транзакции, состоит в том, чтобы иметь уникальный идентификатор, который может отличать 2 транзакции, но в то же время используется для связывания запроса с ответом.

Для чего эта таблица будет использоваться? Скрипт будет запускаться каждые 5 минут и записывать все это в БД. Кроме того, каждый раз, когда он запускается, скрипт проверяет последний успешный транзакт. Кроме того, в конце дня скрипт генерирует сводку всех транзакций, сделанных в этот день, и отправляет их по электронной почте.

Любые идеи о том, как я могу улучшить этот дизайн? Какую нормализацию и/или методы оптимизации я должен применить к этой схеме? Должен ли я разделить это на две или более таблицы?

ответ

0

Я решил использовать подход NoSQL к этому, и он сработал. Используется MongDB. Гибкость, которую он предлагает с структурой документа и не имеющая фиксированного количества атрибутов, действительно помогла. Возможно, это не лучшее решение проблемы, но я смог оптимизировать производительность, используя составные индексы.

Смежные вопросы