NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s podporou uplatnění od 0 Kč. Více informací.
Avatar
pyrin
Člen
Avatar
pyrin:3.6.2016 14:51

Mám tabulku se 4 sloupci, kde se jedná o 4 různé třeba teploty. V tabulce jsou tyto hodnoty reprezentovány celými čísly třeba od -500 do +1500. Pak mám druhou tabulku, kde mám 4 sloupce a v každém sloupci mám pouze 1 hodnotu, celé číslo, které mi udává počet desetinných míst v příslušném sloupci v první tabulce. Takže pokud bych chtěl by hodnoty -500...+1500 odpovídali reálným hodnotám -50,0°C až +150,0°C, tak v druhé tabulce bude ve všech sloupcích hodnota 1. Teď bych chtěl hodnoty ukládat do SQL. Způsobů je více, ale který použít ? Mám si to nadefinovat tak, jak jsem popsal, prostě 2 tabulky, do jedné budu dávat surové hodnoty a do druhé dám 1 záznam s počtem desetinných míst ? A nebo to mám ukládat rovnou jako desetinné číslo v typu float a nebo by se to dalo ukládat jako varchar text ? Pro další zpracování počítám s tím, že bych chtěl třeba vyhledat minimální a maximální hodnotu, spočítat průměr atd. A taky bych to chtěl zobrazit na nějaké web stránce. Kamarád, co mi psal nějakou kostru stránek se urputně brání systému, kde mám v jedné tabulce surové hodnoty jako celá čísla a v druhé tabulce záznam s počtem desetinných míst (taky mohu říci s násobitelem). Nejradši by to měl všechno připravený jako text, který vezme a zobrazí.
Taky jsem měl nápad vůbec na to nepoužít SQL, ale cpát to někam do textových souborů jako surová celá čísla a podle jiného textového souboru zjistit kolik desetinných míst který sloupec má. Výhodu bych viděl v úspoře místa za SQL databázi a čas stroje. Na druhou stranu bych vše musel udělat ručně v C.
Prosím, zkuste mi sem dát pár názorů, jak to dělat a jak určitě ne a třeba proč. Děkuji.

 
Odpovědět
3.6.2016 14:51
Avatar
Erik Šťastný:3.6.2016 14:56

Osobně bych rozhodně použil buďto float nebo text, rozdělovat desetiné číslo když to vyloženě není nutné nebo potřebné mi přijde zbytečné.

 
Nahoru Odpovědět
3.6.2016 14:56
Avatar
Vít Pleskot
Člen
Avatar
Vít Pleskot:3.6.2016 18:48

Volil bych float nebo double, protoze jsou to datove typy urcene prave ukladani desitinych cisel. Ukladat to ve dvou tabulkach je vzhledem k dalsimu chtenemu zpracovani zbytecne narocne, komplikovane. SQL bych pro to zvolil, prijde mi to lepsi zpusob zhlediska pristupu k datum a jejich zpracovani vs souborovy pristup. Co se tyce varcharu, textu, lze to, necha se to samozrejme pro kazdou pocetni opraci prevadet na cislo a zpet na text, ale proc by potom byli jine datove typy kdyby vsichni pak pouzivali varchar na vse :)

 
Nahoru Odpovědět
3.6.2016 18:48
Avatar
pyrin
Člen
Avatar
pyrin:6.6.2016 7:47

Děkuji za názory - rady. Ještě bych chtěl v budoucnu udělat to, že z webu budu moci zadat číslo nejčastěji celé nebo maximálně se dvěmi desetinnými místy a toto číslo bych rád dostal dolů do nějakého jednočipu, který ale má jen celočíselnou matematiku a právě v nějaké jiné proměnné má počet desetinných míst. Takže musím stejně někde provézt kontrolu počtu desetinných míst a podle toho číslo zapisované naformátovat. Proto jsem si vždycky říkal, že je nejlepší zachovat celoformátový tvar čísel a k tomu bych měl jiný sloupeček s počtem desetinných míst. Jsem postižen šetřením pamětí (z jednočipů) a tak je pro mně na všechno používat float plejtváním. Jde o zvyk. Díky, pěkný den.

 
Nahoru Odpovědět
6.6.2016 7:47
Avatar
Odpovídá na pyrin
Erik Šťastný:6.6.2016 19:32

V tomhle případě by to nejspíše šlo no, nebo je možnost si udělat z čísla požadovaný formát až když si ho bereš :)

 
Nahoru Odpovědět
6.6.2016 19:32
Avatar
Odpovídá na pyrin
Neaktivní uživatel:6.6.2016 19:43

Kdyby byl počet desetinných míst předem znám a neměnil se, pak je vhodné použít decimal. Možná tě zklamu, ale šetření paměti ve většině programovacích jazycích i databázích volbou malých datových typů dost často žádnou paměť neušetří :)

Nahoru Odpovědět
6.6.2016 19:43
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Erik Šťastný:6.6.2016 19:50

Myslím že na paměti mu záleží až když to číslo pošle do jednočipu :)

 
Nahoru Odpovědět
6.6.2016 19:50
Avatar
pyrin
Člen
Avatar
pyrin:6.6.2016 20:03

OK, děkuji za další názory. Asi si to více rozpitvám a rozkreslím si co se bude kdy kam přenášet a s jakým formátem. To s tím šetřením paměti, to je moje postižení, a z toho se snad časem dostanu.

 
Nahoru Odpovědět
6.6.2016 20:03
Avatar
Odpovídá na Erik Šťastný
Neaktivní uživatel:7.6.2016 1:22

To určitě, jenže tady se řešila databáze :)

Nahoru Odpovědět
7.6.2016 1:22
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.