Таблица PostgreSQL для хранения результатов тестирования автоматизации - PullRequest
1 голос
/ 26 марта 2010

Я создаю набор тестов автоматизации, который работает на нескольких машинах, и все они сообщают о своем состоянии в базу данных postgresql. Мы запустим ряд автоматических тестов, для которых будем хранить следующую информацию:

  • идентификатор теста (GUID)
  • название теста
  • описание теста
  • состояние (запущено, выполнено, ожидает запуска)
  • прогресс (%)
  • время начала теста
  • время окончания теста
  • результат теста
  • последний скриншот текущего теста (обновляется каждые 30 секунд)

Количество тестов невелико (скажем, несколько тысяч), и на каждой машине (скажем, 50 из них) есть служба, которая проверяет базу данных и выясняет, не пора ли начать новый автоматический тест на этой машине.

Как мне организовать свою таблицу SQL для хранения всей информации? Является ли единственная таблица с столбцом для каждого атрибута подходящей?

Если в будущем мне нужно добавить атрибуты, но я хочу сохранить совместимость со старым форматом базы данных (то есть, возможно, я не захочу удалять и создавать новую таблицу с большим количеством столбцов), как мне поступить? Должны ли новые атрибуты быть только в другой таблице?

Я также думаю о репликации базы данных. В случае неудачи, я не против, если последние скриншоты не будут сохранены в ведомой базе данных. Стоит ли просто хранить скриншоты в отдельной таблице, чтобы упростить репликацию?

Ответы [ 2 ]

0 голосов
/ 26 марта 2010

Будет хорошо с одним столом.

Если у вас есть набор избыточных данных (например, состояние теста и т. Д.), Вы можете разбить их на собственные таблицы (так что вы сохраняете 1 или 2 вместо «Пропущенные»). ", и может присоединиться к таблице состояния).

Если вы добавите столбцы, ничего страшного. Чтобы обеспечить обратную совместимость, всегда указывайте имена столбцов:

select cola, colb, colc from table...

insert into table(cola, colb, colc) values ('x', 'y', 'z')

Удостоверьтесь, что вы разрешаете пустые значения в новых столбцах.

Несколько тысяч строк - ничто для postgres.

0 голосов
/ 26 марта 2010

Если вы укажете столбцы в списке вставок, например

INSERT INTO TABLE (Col1, Col2,..) VALUES (1, 2, ...)

будет хорошо, если вы добавите столбцы позже. Единственная проблема может быть, если вы начнете удалять столбцы.

ОБНОВЛЕНИЯ должны быть в порядке, так как вы уже указали столбцы.

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

Итак, создайте таблицу так, как она у вас есть, а затем при вставке убедитесь, что вы указали имена столбцов, тогда при изменении структуры таблицы (добавление новых столбцов) это не должно быть проблемой, если только они не установлены на не быть нулевым, в этом случае вам может потребоваться указать значение по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...