Проектирование базы данных для проведения нескольких итерационных измерений - PullRequest
0 голосов
/ 12 мая 2010

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

У меня есть ~ 10000 уникальных статистических счетчиков, которые собираются до и после каждой итерации теста. Максимальное количество итераций равно 10, хотя может быть и меньше.

Я думал следующее:

CREATE TABLE stat_names(stat_id, stat_name);
CREATE TABLE stats_per_iteration(stat_id, before_iter_1, after_iter_1, before_iter_2, after_iter_2, ...);

Таблица stat_names будет содержать отображение полного счетчика в uniq stat_id. Таблица stats_per_iteration будет содержать данные измерений 1 + 10 * 2 столбцов. stat_names.stat_id = stats_per_iteration.stat_id

ИЛИ может быть, у меня должна быть отдельная таблица для каждой итерации? Что приведет к 1 + 10 таблицам в базе данных.

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 мая 2010

Это может помочь вам начать. Ваши stat_names называются Измерение и stats_per_iteration будет таблица Итерация . Таблица Test будет содержать одну запись для каждого выполненного теста - например, для нового устройства, нового дня и т. Д.

test_stats_model_01

0 голосов
/ 12 мая 2010

Это действительно зависит от ваших потребностей, которые действительно не рассматриваются в вашем вопросе. При разработке таблиц обратите внимание на эти факторы в произвольном порядке:

  • как вы будете записывать данные
  • как вы будете читать данные
  • пробел будет проблемой

Они могут определять их порядок важности:

  • сколько раз вы будете читать данные, много или мало?
  • вам нужно будет делать записи с высокой частотой?
  • Насколько сложны ваши запросы на чтение?
  • будут ли данные помещаться в имеющееся у вас пространство?

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

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