2012-09-19 1 views
3

Я пытаюсь разработать приложение, которое отслеживает ежедневные данные о запасах. (Каждый день для каждой акции создается новая запись). Будет отслеживаться около 5000-10000 акций. Затем мне нужно анализировать каждый день, месяц или другой период с данными о запасах и хранить их.тысяч таблиц db VS одна огромная таблица

Мой вопрос: лучше ли иметь таблицу действий для каждого запаса, который будет удерживать ежедневную активность (каждый день новая строка) или разумнее иметь одну огромную таблицу, которая вставлена ​​с 10 000 записей каждый день для всех акций? Имейте в виду, что мне нужно ежедневно выполнять пакетные вычисления для каждого запаса (вычисляя скользящие средние и прочее).

+0

Зависит от того, какой анализ вам нужно делать после .. 1 таблица охватывает все – BugFinder

ответ

6

Один стол. Возможно, вы захотите разбить его по идентификатору запаса.

Автоматическое создание таблицы - это почти всегда плохая идея.

+0

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

+0

Согласовано, также я бы рассмотрел отдельные таблицы для хранения агрегатов, таких как your_tab_day, _weak, _month и т. Д. Возможно, некоторые агрегаты можно будет рассчитывать на основе некоторых агрегатов более низкого уровня - например, SUM месяца, могут быть основаны на SUM дня, год SUM на основе месяца SUM и т. д. – WojtusJ

+0

Кроме того, если у вас есть необходимые изменения для базовой структуры, обновление одной таблицы намного проще, чем поиск 1000. – Paddy

0

Как правило, вы можете запрашивать одну таблицу быстрее по сравнению с объединениями и несколькими запросами.