Ответ на вопрос о хорошей схеме для биржевых данных рекомендовал эту схему:
Symbol - char 6
Date - date
Time - time
Open - decimal 18, 4
High - decimal 18, 4
Low - decimal 18, 4
Close - decimal 18, 4
Volume - int
Кроме того, в документации Postgres сказано:
"Если вам требуется точное хранение и вычисления (например, для денежных сумм), используйте вместо этого числовой тип (типов с плавающей запятой)."
Я довольно новичок в SQL, и я надеюсь, что это не очень наивный вопрос. Меня интересует необходимость использования числового типа данных (особенно 18,4) - мне кажется, это излишне. И «точное» не совсем то, что я бы указал, если точное означает исправить до 12 десятичных знаков.
Я думаю об использовании реальных 10,2 для денежных столбцов. Вот мое обоснование.
Типичный расчет может сравнить цену акций (2 знака после запятой) со скользящей средней (которая может иметь много знаков после запятой), чтобы определить, какая из них больше. Насколько я понимаю, отображаемое значение среднего (и любых вычисленных результатов) будет округлено до 2 десятичных знаков, но эти вычисления будут выполняться с использованием более высокой точности сохраненного внутреннего числа.
Таким образом, такой расчет будет точным, по крайней мере, до 2 десятичных знаков, что, на мой взгляд, действительно все, что мне нужно.
Я здесь далеко от базы, и возможно ли получить неправильный ответ на приведенное выше сравнение, используя реальный тип данных 10,2?
Я также приветствовал бы любые другие комментарии, за или против, относительно использования числового типа данных.
Заранее спасибо.