Autor Téma: Ako na údaje?  (Přečteno 2281 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4396
  • Karma: 39
    • Verze Delphi: XE7 professional
Ako na údaje?
« kdy: 02-03-2013, 11:04:36 »
Neviem sa rozhodnúť, čo je správnejšie, lepšie a ľahšie na ďalšie spracovanie. Nepoznám ako sa to zvykne riešiť a nemám s tým skúsenosti.
 
Jedná sa "vystavenie" zálohových platieb za byt. Následne na to sledovanie úhrad, získanie rôznych prehľadov a urobenie ročného vyúčtovnia. Jednotlivé položky nazývam "služba".
 
Na základe rád z tohto fóra (http://forum.delphi.cz/index.php/topic,13527.0.html) som základnú tabuľku urobil "jedno stĺpcovú", nakoľko neviem aké a koľko služieb bude použitých.
 
Doteraz som používal "plnohodnotnú" tabuľku a vždy som pre každý mesiac generoval záznamy.
 
Viem o dvoch možnostiach
1) generovať záznam pre každý mesiac
- výhody: ľahká práca s dátami. Priame načítanie údajov
- nevýhody: veľký objem dát (s tým ste ma už poslali do pekla). Ťažšia údržba, ak sa urobí nejaká zmena spätne. Treba opraviť všetky nasledujúce záznamy od danej zmeny.
 
2) generovať len zmeny (+ doplniť dátum zmeny)
- výhody: podstatne menší objem dát, nemusím (užívateľ) každý mesiac generovať nové záznamy
- nevýhody: pri dolovaní údajov ich musím podľa situácie vždy "dopočítať"
 
3) čo iné sa ešte používa?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4396
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako na údaje?
« Odpověď #1 kdy: 04-03-2013, 09:53:28 »
Nikto sa nepodelí o skúsenosti? Nechcem sa vydať cestou, ktorá sa v budúcnosti ukáže ako nie vhodná.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline < z >

  • Administrátoři
  • Guru
  • *****
  • Příspěvků: 1127
  • Karma: 42
    • Verze Delphi: 7, 2010
Re:Ako na údaje?
« Odpověď #2 kdy: 04-03-2013, 12:03:56 »
tak ono kazde reseni je specificke a tezko si predstavuju, co mas vlastne na mysli :)

ale podle logiky by zaznamy mely reprezentovat to, co se stalo,
tj. co zaznam, to platba ... program si pak z DB vybere pozadovane zaznamy a s tim pracuje

DB navic maji vlastni funkce, ktere ti sectou vyslednou castku za dane obdobi, takze to nemusis nacitat

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4396
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako na údaje?
« Odpověď #3 kdy: 04-03-2013, 12:20:47 »
Citace
DB navic maji vlastni funkce, ktere ti sectou vyslednou castku za dane obdobi, takze to nemusis nacitat
O tom viem. To teraz neriešim.
Prikláňaš sa k 1).
Tvoja poznámka ma upozornila, že pri riešení 2) by som sa asi poriadne natrápil kým by som zistil údaje za dané obdobie
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline < z >

  • Administrátoři
  • Guru
  • *****
  • Příspěvků: 1127
  • Karma: 42
    • Verze Delphi: 7, 2010
Re:Ako na údaje?
« Odpověď #4 kdy: 04-03-2013, 12:46:21 »
no jiste by bylo nelogicke dopocitavat puvodni hodnoty ... to si radej ukladej obe - v danem radku budes mit, kolik zaplatil a vedle toho nejakou sumu k danemu datu

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4396
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako na údaje?
« Odpověď #5 kdy: 04-03-2013, 12:54:52 »
Hovorím, vlastne píšem o niečom inom. Príklad záznamov

1)
leden - 100
unor - 100
brezen - 100
duben - 90
kveten - 90
2)
100 - leden
90 - duben
Pre 1) Select Sum(hodnota) where between leden - kveten. Jednoduché a čisté
pre 2) musí si tie chýbajúce riadky dopočítať, či vytvoriť kompletnú dočasnú tabuľku - to môže byť dosť komplikované

 
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1429
  • Karma: 34
    • Pepak.net
Re:Ako na údaje?
« Odpověď #6 kdy: 04-03-2013, 13:11:03 »
Stejně je ten tvůj dotaz nesrozumitelný. Víš, ono je těžké radit, když svoje dotazy kladeš tak, že vůbec není jasné, co chceš. Ten tvůj "příklad záznamů" je na dobré cestě, ale přinejmenším bys mohl napsat, co chceš, aby ti v případě 1 a případě 2 vypsalo. Pokud chceš výsledek 480 v obou, tak to máš napsat, nejlépe i se zdůvodněním, jak se k tomu výsledku dospělo, aby to tu každý nemusel po tobě luštit.

Obecně mám pocit, že si v případě databází neseš z minulosti nějaké trauma, kdy jsi musel pracovat s enginem, který měl drasticky omezený počet tabulek, řádek a sloupců, takže se teď snažíš za každou cenu ušetřit každý bajt. Pokud ano, tak si zajdi k psychologovi, ať ti pomůže; pokud ne, tak zapomeň na šetření za každou cenu, dokud se budeš pohybovat jen v řádu statisíců řádků, tak tyhle ptákoviny nemá cenu řešit. Udělej to nějak rozumně vzhledem k požadovanému zobrazení reality a na nějaké optimalizace se zvysoka vykašli. Aspoň zatím, než si ověříš, že prostě těch 6 bajtů na záznam ušetřit musíš, protože těch záznamů máš 160 kvadrilionů a to už se promítne do slušných peněz.

Pokud máš pocit, že pro různé druhy zpracování potřebuješ různé struktury dat, tak můžeš použít triggery pro to, aby ti z jednoho zápisu vygenerovaly a udržovaly struktury všechny.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4396
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako na údaje?
« Odpověď #7 kdy: 04-03-2013, 14:03:57 »
Trošku si pokecám. Bavím sa viac na akademickej úrovni ako na kontrétnom riešení. Ja osm si myslel, že vzhľadom na skutočnosť, že sa jedná o program na správu bytových domov je problematika vo všeobecnosti známa. Budem, v kocke, riešiť
- predpísanie zálohových platieb
- sledovanie úhrad zálohových platieb
- odovzdanie ročného zúčtovania pre jednotlivých členov domu
 
Všetky moje otázky smerujú k tabuľke na evidenciu zálohových platieb a prácu s ňou. Prípad 1) znamená, že každý člen má v každom mesiaci celý zápis. Prípad 2) znamená, že generujem zápis len pri zmene zálohovej platby. Hm, čo so sledovaním úhrad?
 
Citace
Pokud chceš výsledek 480 v obou, tak to máš napsat, nejlépe i se zdůvodněním, jak se k tomu výsledku dospělo, aby to tu každý nemusel po tobě luštit.
Mne ide o to, aby som k tomu výsledku dospel čo najjednoduchšie a s minimálnou možnosťou vnesenia chyby. Preto nemôžem dať zdôvodnenie ako som dospel k výsledku.
Citace
takže se teď snažíš za každou cenu ušetřit každý bajt. Pokud ano, tak si zajdi k psychologovi, ať ti pomůže
Z toho šetrenia ma pomaly liečiš :) Toho psychológa mi už radilo viac ľudí. Vychádzam len zo skúsenosti s Accessom, čo podľa mnohých ani nie je DB.
Počas písania som si uvedomil/ujasnil niektoré veci. Idem podľa 1) a považujem tému za uzavretú. Ale môžte ešte písať :D
 
Ja som technický typ. Aj myslením. A to mi neraz robí veľké problémy. Som veľmi rád, že ešte reagujete na moje príspevky. Za to som naozaj veľmi vďačný  :-*
 
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1429
  • Karma: 34
    • Pepak.net
Re:Ako na údaje?
« Odpověď #8 kdy: 04-03-2013, 14:39:27 »
Ja osm si myslel, že vzhľadom na skutočnosť, že sa jedná o program na správu bytových domov je problematika vo všeobecnosti známa.
Jinými slovy, jsi smířen s tím, že místo aby se příspěvkem zabývalo těch 10 aktivních uživatelů zde, tak se tím budou zabývat ti dva uživatelé, co jsou současně aktivní, mají povědomí o konkrétní řešené problematice a pamatují si, čím se teď zabýváš. Prosím, to je tvoje volba, ale kdybych ti směl radit, tak ti doporučím co nejméně omezovat prostor odpovídajících, abys měl vůbec šanci nějakou odpověď dostat.

Citace
Všetky moje otázky smerujú k tabuľke na evidenciu zálohových platieb a prácu s ňou. Prípad 1) znamená, že každý člen má v každom mesiaci celý zápis. Prípad 2) znamená, že generujem zápis len pri zmene zálohovej platby. Hm, čo so sledovaním úhrad?
A ty nebudeš chtít u předpisů úhrad vědět, že předpis byl vyhotoven 4.3.2013 v 14:30:00? Že si adresát ten předpis přečetl 4.3.2013 v 18:45 a že 8.3.2013 v 9:10 se platba připsala na tvůj účet? Že se vůbec zamýšlíš nad možností, že budeš ukládat "jen změny"? Proboha, zapomeň na tyhle "optimalizace". Ty si to máš navrhnout tak, aby to dobře popisovalo realitu, a optimalizovat až dodatečně, pokud se ukáže, že to je potřebné nebo vhodné. Optimalizovat předem je blbost, tak se programy psát nedají.

Citace
Citace
Pokud chceš výsledek 480 v obou, tak to máš napsat, nejlépe i se zdůvodněním, jak se k tomu výsledku dospělo, aby to tu každý nemusel po tobě luštit.
Mne ide o to, aby som k tomu výsledku dospel čo najjednoduchšie a s minimálnou možnosťou vnesenia chyby. Preto nemôžem dať zdôvodnenie ako som dospel k výsledku.
Jo, ale bez toho není jasné, co vlastně počítáme.

Citace
Vychádzam len zo skúsenosti s Accessom, čo podľa mnohých ani nie je DB.
Dobře uděláš, když všechno, co ses naučil ve spojitosti s Accessem, zapomeneš. Nejlíp uděláš, když všechno, co ses naučil ve spojitosti s Accessem, přesuneš do části paměti, kterou si označíš "takhle to nedělat, je to blbě!" a kterou budeš často konzultovat. Jako fajn, do začátku je lepší Access než si tu databázi bastlit ručně, ale pokud už máme k dispozici kvalitní free SQL databáze, tak by bylo vhodné co nejdřív Access zabít.

Offline Slavomir

  • Mladík
  • **
  • Příspěvků: 51
  • Karma: 0
    • Verze Delphi: XE2
    • RQ Money
Re:Ako na údaje?
« Odpověď #9 kdy: 04-03-2013, 20:26:37 »
pepak má pravdu, na MS Access je najlepšie zabudnúť. Nepoužiteľný program, robil som s ňom síce už dávnejšie (cca v rokoch 1995-2000). Jediné, čo mi dalo, je prehľadné prostredie na tvorbu queries. Ale to si teraz viem urobiť aj v hlave.  :)
Aj keď je problematika bytových družstiev (resp. spracovanie zálohových platieb) všeobecne známe, nie každý musí hneď vedieť, čo a ako si program predstavuješ. Ak sa chceš viac baviť na akademickej úrovni ako na konkrétnom riešení, môj názor je ten, že tu skôr ľudia hľadajú konkrétne riešenia a nie sa vykecávať. Na to mám "hospodu", tam je každý majster sveta vo všetkom.  ;)
Relačné databázy boli (a čiastočne stále sú) mojím koníčkom (ono to v človeku ostane asi navždy). Ak potrebuješ nejaké riešenie s poliami, tabuľkami, vzťahmi či triggermi, je potrebné konkrétne sa pýtať. Ak budem vedieť, rád odpoviem. Ale baviť sa všeobecne - to je u mňa strata času. Ešte raz opakujem - je to môj názor.
Možno iní prispievatelia majú čas a chuť "baviť sa na akademickej úrovni".
Lazarus, Delphi - RQ Money

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4396
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako na údaje?
« Odpověď #10 kdy: 05-03-2013, 08:51:06 »
Citace
Ale baviť sa všeobecne - to je u mňa strata času
Tá aplikácia je viac v hlave ako v PC. Nechcem urobiť nejaký zásadný kiks. To je všetko. Mimochodom, už mi tu v tom dosť pomohli.
Budem sa snažiť pri ďalších otázkach mať všetky vaše pripomienky na pamäti.
 
Čo sa týka Access-u, tak ten mi pomohol preniknúť do DB. V prvom Visual FoxPro som nebol schopný ani len založiť DB. Cítim, že s tým zabudnutím máte pravdu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.