Нужна помощь со структурой БД - PullRequest
0 голосов
/ 06 января 2011

Я разрабатываю веб-приложение, которое использует данные о запасах.Данные о запасах могут храниться в:

  1. файлах
  2. DB

Структура данных проста: есть ежедневный набор и еженедельный набор,Если файлы используются, я могу сохранить файл для каждого символа / набора, например GOOGLE_DAILY и GOOGLE_WEEKLY.Каждый набор включает в себя простой список полей (Дата, открытие / высота / минимум / закрытие, объем, дивиденды).

Но как мне это сделать с БД?Должен ли я использовать реляционные или другие БД?Я думал об использовании 2 таблиц на каждый символ, но это привело бы к созданию тысяч таблиц, что не так.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 06 января 2011

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

  • ticker_symbol - символ тикера
  • time - время котировки акций
  • price - цена акции на тот момент

Пока ticker_symbol является индексированным полем, вы можете выполнять мощные запросы, такие как SELECT time,price FROM StockPrices WHERE ticker_symbol='GOOG' ORDER BY time DESC, и они будут очень эффективными. В этой таблице вы также можете хранить столько символов, сколько хотите.

Вы можете добавить другие таблицы для получения дивидендов, информации об объеме и тому подобное. Во всех случаях у вас, вероятно, есть составной ключ ticker_symbol и time.

0 голосов
/ 06 января 2011
Make two tables:

DAILY_STOCK_DATA

DATETIME Date
CHAR(5)  Symbol #or whatever the max symbol length can be
INTEGER  Open
INTEGER  High
INTEGER  Low
INTEGER  Close
INTEGER  Volume
INTEGER  Dividend

Предполагается, что еженедельные данные усредняются за 7 дней?:

WEEKLY_STOCK_DATA

DATETIME Date  #date when the week started
CHAR(5)  Symbol #or whatever the max symbol length can be
INTEGER  AvgOpen
INTEGER  AvgHigh
INTEGER  AvgLow
INTEGER  AvgClose
INTEGER  AvgVolume
INTEGER  AvgDividend

Примечание. Все Open, Close и т. Д. Являются целыми числами.Это потому, что они предназначены для хранения значений в монетах с самой низкой валютой, таких как центы, вместо хранения данных с плавающей запятой.

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