Avatar
pyrin
Člen
Avatar
pyrin:

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. června 14:51
Avatar
Elisse
Člen
Avatar
Elisse:

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  +1 3. června 14:56
Avatar
Vít Pleskot
Člen
Avatar
Vít Pleskot:

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  +1 3. června 18:48
Avatar
pyrin
Člen
Avatar
pyrin:

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. června 7:47
Avatar
Elisse
Člen
Avatar
Odpovídá na pyrin
Elisse:

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. června 19:32
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na pyrin
Jiří Gracík:

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  +2 6. června 19:43
Creating websites is awesome till you see the result in another browser ...
Avatar
Elisse
Člen
Avatar
Odpovídá na Jiří Gracík
Elisse:

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

 
Nahoru Odpovědět 6. června 19:50
Avatar
pyrin
Člen
Avatar
pyrin:

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  +1 6. června 20:03
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Elisse
Jiří Gracík:

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

Nahoru Odpovědět 7. června 1:22
Creating websites is awesome till you see the result in another browser ...
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.