Google+

Jul. 16th, 2011 10:55 am
metaclass: (Default)
[personal profile] metaclass
Адский гуглоплюс каким-то боком умудрился сунуть в suggestions половину знакомых. Как же они задолбут своим датамайнингом.

Внезапный вопрос.

Date: 2011-07-16 08:07 am (UTC)
From: [identity profile] kkirsanov.livejournal.com
Для создания опердени требуется хранить деньги в БД.
А БД не простая, а гугловская. Т.е. Decimal - нет, но есть integer, float и string.

Хранить во флот - потеря точности + странные суммы вроде 2.000000009
В стринге - придется делать свои математические операции.
Можно и в ineger хранить в виде коппек, а при выводе просто делить на 100. пока склоняюсь к этому варианту.

Что пауки думают по этому поводу?

Re: Внезапный вопрос.

Date: 2011-07-16 08:20 am (UTC)
From: [identity profile] metaclass.livejournal.com
а integer там сколько-битный? 31 бит копеек не везде хватит)
Вообще интегер безальтернативен, вопрос только в диапазоне значений.

Re: Внезапный вопрос.

Date: 2011-07-16 08:54 am (UTC)
From: [identity profile] d4s.livejournal.com
а стринг существенно скорость уменьшает?

Re: Внезапный вопрос.

Date: 2011-07-16 09:00 am (UTC)
From: [identity profile] metaclass.livejournal.com
Не тестировал, но здравый смысл подсказывает, что реализация математических операций с деньгами поверх стринга будет крайне печальной.

Re: Внезапный вопрос.

Date: 2011-07-16 09:23 am (UTC)
From: [identity profile] d4s.livejournal.com
вот это-то понятно, вопрос в том как много этих операций?
просто из того, что я читал по проектированию хранения данных "на века" - как раз стринг и рекомендуют, но там не для БД, правда. потому и спросил.

Re: Внезапный вопрос.

Date: 2011-07-16 09:28 am (UTC)
From: [identity profile] metaclass.livejournal.com
Того кто рекомендует стринг, нужно поставить в угол и избивать по голове hard-cover изданием TAPL бенджамина пирса, до тех пор, пока не поймет, зачем люди придумали строгую типизацию.
Я таки насмотрелся решений вида "храним произвольные данные в БД, сериализуя их в строку", иногда это приемлемо, но если есть возможность так не делать - лучше так не делать)

Re: Внезапный вопрос.

Date: 2011-07-16 09:49 am (UTC)
From: [identity profile] d4s.livejournal.com
спасибо за наводку ребе - гляну краем глаза.
но я специально выделил - там рекомендация не для БД. Скорее для файлов со структурами, конфигов, высокоуровневывых протоколов - для последних двух особенно хорошо, как показывает мой скромный опыт.
с файлами-хранилищами и БД не работаю - поэтому и стало интересно - а как там у "них"? ;-)

Re: Внезапный вопрос.

Date: 2011-07-16 10:06 am (UTC)
From: [identity profile] metaclass.livejournal.com
Да, для этого всего лучше текст, если нету жестких ограничений по памяти, производительности и трафику. И все равно - желательно оный текст строго типизировать, т.е. в памяти оно все равно будет в виде кошерных структур данных, а не строк.

Re: Внезапный вопрос.

Date: 2011-07-16 10:03 am (UTC)
From: [identity profile] gds.livejournal.com
а я вот недавно, наоборот, постановил передавать числа в json именно в строках. А всё почему? Потому что числа в json плохие, негодные. Таким же образом могут обстоять дела и в других "окружениях" -- в субедешечьках, например.

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

Re: Внезапный вопрос.

Date: 2011-07-16 01:56 pm (UTC)
From: [identity profile] avnik.livejournal.com
ну если вся база (точнее хранищище) -- oid -> object, оно и получается int64 -> serialized
(Но там свой рак индексов на application уровне, и zodb головного мозга)

Зато туда можно нахреначить практически любой граф (хоть цикличный)

Re: Внезапный вопрос.

Date: 2011-07-16 09:27 am (UTC)
From: [identity profile] kkirsanov.livejournal.com
Там еще и агрегирующих функций нет, так что время расчёта, думаю, будет заметно меньше времени извлечения из БД.

Re: Внезапный вопрос.

Date: 2011-07-16 04:06 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
в блобе храни ёпта
а вообще в институте должны были научить что деньги хранятся в типе с фиксированной десятичной точкой

Re: Внезапный вопрос.

Date: 2011-07-16 05:13 pm (UTC)
From: [identity profile] kkirsanov.livejournal.com
И какой же он?

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 15th, 2025 10:34 pm
Powered by Dreamwidth Studios