Fórum Root.cz
Hlavní témata => Server => Téma založeno: jebal 11. 10. 2015, 22:57:03
-
Ahoj,
potřeboval bych poradit. Jaký typ databázového sloupce zvolit, pokud v něm mají být uloženy číselné hodnoty max. 100, ale jak + tak -?
4ili rozsah je -100 - 100. Děkuji. :)
-
Omlouvám se, ještě doplňuji že se může jednat i o desetiny, tzn. například -1.6
-
Jaký typ databázového sloupce zvolit, pokud v něm mají být uloženy číselné hodnoty max. 100, ale jak + tak -?
napriklad DECIMAL(3, 0)
-
ještě doplňuji že se může jednat i o desetiny, tzn. například -1.6
tak potom DECIMAL(4, 1)
-
Mnohokráte děkuji! Pánbůh vám to oplatí na dětech, pokud o ně budete stát. :)
-
Opravdu jen o desetiny? setinky nebudou?
-
Vzhledem k tomu že dotazovaný systém vrací jen desetiny, je mi líto. O co přesně v dotazu šlo?
-
Vzhledem k tomu že dotazovaný systém vrací jen desetiny, je mi líto. O co přesně v dotazu šlo?
To je dobrá otázka, na ktorú by si si mal teraz sám nájsť odpoveď.
-
A nebolo by lepsie mysliet do buducna a dat tam na 2 des. miesta? Radsej mat 0 na konci ako potom menit dat. pole a program
-
Myslim, ze nejlepsi bude kdyz uvedes o jakou databazi se jedna.
-
Poněkud obšírnější odpověď. Datový typ má v databázi dva velké úkoly. Zaprvé ukládá data. Každý typ to dělá trochu jinak a něco jiného umí. Například datový typ Number v Oracle SQL neumí ukládat texty. Zadruhé datové typy umí do jisté míry kontrolovat správný formát.
Na vaši otázku bych tedy opověděl, že v Oracle SQL máte použít Number. Tečka. Rosah čísel obrovský, přesnost až na 38 míst. Tento datový typ bude umět ukládat vaše čísla. Ovšem to vycházím z předpokladu, že vaše otázka zní "jaký datový typ umí uložit čísla od -100 do 100 na jedno desetinné místo". Čili že se ptáte na ten první úkol - aby to taková čísla umělo uložit.
Pokud vaše otázka ale je "jaký datový typ mi zajistí, že to budou jen čísla od -100 do 100 na jedno desetinné místo", pak odpověď pro Oracle SQL je, že žádný. Na půli cesty je tam třebas ten number (4,1), což jsou čísla od -999.9 do 999.9 a jedno desetinné místo. To je ten druhý úkol - že od toho čekáte i nějakou kontrolu správných dat.
Pro správnou odpověď je tedy potřeba vědět, o jakou databázi jde a co od toho vlastně čekáte. Zda jen uložení dat (a pak vybíráme podle efektivity datového typu) nebo i nějakou garanci formátu.
-
ještě doplňuji že se může jednat i o desetiny, tzn. například -1.6
tak potom DECIMAL(4, 1)
Představil jsem si, že tazatel chce ukládat například venkovni teplotu. V tom případě by tohle mohlo být správným řešením. Škoda, že se ten účel dozvídáme jen někdy.
-
Velice správně, jde o ukládání venkovní teploty. :))) Mnohokráte děkuji. A DB je MySQL. Vstupní data kontrolovat nijak nepotřebuji, o to se postará script, který tato data zpracovává.
-
Paklize by jsi chtel usporit co nejvic misto pak SMALLINT (dva bajty) a hodnoty udavat *10. DECIMAL je vice narocny - 4 bajty.
-
Otazka je, zda na neco takovyho neni vubec SQL atomovka na mravence. Pokud jde o nejaky grafikovani a tak, a ne vylozene o dlouhodoby ukladani exaktnich dat z mnoha cidel, tak je lepsi rrd. Dokonce to tak nejak "od prirody" dela agregaci.
-
No, což o to, já si rád nechám poradit a nasměrovat se lepším směrem, ale když už mám na domácím serveru mysql, přišla mi tato cesta poměrně logická... Kdo ví, jakou statistiku si budu chtít vyjet za 10 let, ne? :)