Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Modrá je dobrá
zelená je lepší

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub Database (mysql,...) [ŽP: neomezená] (kategorie Programování) moderuje melkor_unlimited.
Archiv
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: rxscomd
[ 1008 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
edmundl 3.12.2007 11:57  594
Varianta 1 je sice pracnější na začátku, ale při práci s historickými daty se ti to vrátí, protože s nimi můžeš pracovat skoro stejně jako s živými. To ve variantě 2 bude dohledávání stavu mnohem pracnější.
knedle knedle online - Krabice živých 3.12.2007 11:25  593
jsou jeste nejake vyhody nevyhody:

1/ kopie zive tabulky
- vyhoda: prehlednost
- nevyhoda: pracnost

2/ jedina tabulka historie, kam se ukladaji data ze vsech tabulek
- vyhoda: mensi pracnost
- nevyhoda: neprehlednost, snad i velikost tabulky co do poctu zaznamu (?)

-- u teto je otazka, zda ukladat vsechna pole, nebo jen ty zmenena
- pokud nekompletni, spatne by se asi dohledavali ostatni data stejnho zaznamu
- pokud kompletni, velke narustani dat v teto tab, lze rict, ze i redundance dat


a jeste, pokud se dela takovato historie, dela se to pred novou zmenou (tj. zpetne - aktualni stav neni v tabulce historie) nebo hned po zmene (aktualni stav je i v tabulce historie)
pepak pepak - Pepak.net 3.12.2007 11:22  592
Bredy: To neni dobre reseni. Databaze jsou sice delane, aby se vyporadaly s velkym mnozstvim zaznamu, ale presto je lepsi ty neaktivni necpat do zive databaze. To by se snad hodilo v pripade, ze VZDY potrebuju delat s historii, ale to plati jen u velice malo tabulek.
bredy 3.12.2007 11:15  591
pepak, knedleNebo v každé tabulce mít záznamy:
tabulka(... položky ..., platí_od, platí_do)
Pak stačí filtrovat podle datumu, a zobrazovat záznamy, které jsou v zadaném rozsahu.

Nevýhodou je, že každá změna znamená nový záznam, byť se změnilo něco v jednom sloupci.
pepak pepak - Pepak.net 3.12.2007 11:00  590
Bud jedna kopirovaci tabulka pro kazdou zivou tabulku (prehledne, ale pracne) nebo jedna globalni tabulka historie(jmeno_tabulky, jmeno_pole, [puvodni_hodnota], [nova_hodnota], cas_zmeny)
knedle knedle online - Krabice živých 3.12.2007 10:42  589
dotazasi na princip:

pokud chci mit kompletni historii stavu zaznamu "jak sel cas" v databazi - jakym stylem se to da udelat? je vice moznosti?

mam mssql, v ni cca 40 tab - klasicka relacni db

jedine rozumne co me napada, je "kopie" vsech tabulek, urcena prave pro ukladani historie - napr:
tabulka "uzivatel" obsahuje aktualni realna data, pokud by se data 1 zaznamu zmenila, byla by zkopirovana do tabulky "archiv_uzivatel", kde by bylo navic casove razitko



jsou pouzivany jeste jine zpusoby resici tohle zadani? (kompletni historie zaznamu u cele db)
melkor_unlimited melkor_unlimited Ltd. 15.11.2007 07:24  588
Kdokoliv [586]: Já to tedy beru, šéfe.
makovec makovec Chuck Norris snědl jídlo od Babicy - a ještě si přidal 14.11.2007 15:23  587
a tady teda nechci .o)
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 14.11.2007 15:17  586
Spravcovska poznamkaHleda se moderator, zajemci projevte se.
pepak pepak - Pepak.net 13.11.2007 21:30  585
To je moje chyba, END ma byt i ve Firebirdu.
huh huh 13.11.2007 21:01  584
tvx [583]: v MySQL to funguje taky, jenom ten CASE musi byt ukoncen END:
ORDER BY (CASE id WHEN 123 THEN 1 WHEN 456 THEN 2 WHEN 1 THEN 3 ELSE NULL END)
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 13.11.2007 10:33  583
nojo ale co mysql, tam sem asi v... koncinach?
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 13.11.2007 10:29  582
MS SQL tohle umi taky (nedavno jsem prave zhruba takovejhle case pouzival, ne teda v order by, ale to je asi fuk), ne, ze by to asi nekoho nejak dvakrat zajimalo.
pepak pepak - Pepak.net 13.11.2007 10:27  581
Ve Firebirdu ano:
SELECT ...
ORDER BY (CASE id WHEN 123 THEN 1 WHEN 456 THEN 2 WHEN 1 THEN 3 ELSE NULL)
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 13.11.2007 09:29  580
zapeklita otazka:
dokazete nkdo docilit serazeni zaznamu v selectu podle vami dodanych hodnot?
konkretne potrebuju neco jako
select * from tabulka where id in (seznam id a podle nej bych velice rad i radil...)
nikoli podle seznamu ale podle poradi v jakem jsem ta id dodal... jde neco takovyho vubec?

[ 1008 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt