Autor Téma: Distinct - vylúčený pomocou DB tabuľky  (Přečteno 355 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3371
  • Karma: 35
    • Verze Delphi: XE7 professional
Distinct - vylúčený pomocou DB tabuľky
« kdy: 23-12-2017, 13:48:48 »
Rád by som vedel Váš názor. Veľmi často bojujem s DISTINCT, len kvôli tomu, že nemôžem vytvoriť dokonalú väzbu medzi dvoma tabuľkami. Tak som si pomyslel, že bude lepšie vytvoriť jednu tabuľku, kde budú údaje z tých dvoch kritických tabuliek. Síce pomocou DISTINCT, ale len RAZ. Jej používaním predpokladám
  • ostatné SQL bez DISTINCT
  • zjednodušenie samotných SQL
  • zrýchlenie zložitého výpočtu s "veľa" SQL so subselectmi
Tá denormalizácia podľa mňa stojí zato. Používa sa také riešenie? Neviem ináč zmeniť návrh DB tak, aby som ten problém vyriešil.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2138
  • Karma: 114
    • Verze Delphi: D2007, XE3, DX10
Re:Distinct - vylúčený pomocou DB tabuľky
« Odpověď #1 kdy: 23-12-2017, 16:17:34 »
Stano, co delas se svymi prispevky, ze ja cas od casu dostanu od tebe do RSS ctecky (Thunderbird) neco necitelneho jako je na pribalenem obrazku?

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2138
  • Karma: 114
    • Verze Delphi: D2007, XE3, DX10
Re:Distinct - vylúčený pomocou DB tabuľky
« Odpověď #2 kdy: 23-12-2017, 16:25:22 »
Tá denormalizácia podľa mňa stojí zato. Používa sa také riešenie? Neviem ináč zmeniť návrh DB tak, aby som ten problém vyriešil.
No denormalizace se vetsinou pouziva, kdyz to sice funguje, ale vykon je mizerny: v algoritmech obecne existuji dva extremy: jen optimalizovany na cas a druhy optimalizovany na pamet a pak hafo kompromisu mezi nimi. A denormalizace je krokem ke zrychleni na ukor plytvani pameti.

Zkousel jsi se toho distinct zbavit presnejsimi joiny? Nekdy to pomuze napr.
Kód: SQL [Vybrat]
  1. JOIN yyy y ON ....
  2. JOIN xxx x ON x.a=y.b AND x.c=y.d AND x.e=y.f ...
  3.  
Nejblbeji se mi toho vzdycky zbavovalo ve vicenasobnych vazbach m:n napr. fyzicka konfigurace, logicka konfigurace, data ...

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3371
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Distinct - vylúčený pomocou DB tabuľky
« Odpověď #3 kdy: 23-12-2017, 17:35:40 »
Citace
Stano, co delas se svymi prispevky, ze ja cas od casu dostanu od tebe do RSS ctecky (Thunderbird) neco necitelneho jako je na pribalenem obrazku?
Ja nič. V editačnom okne to mám v poriadku. Pošlem to a výsledok si tu dal. Ja to okamžite opravujem. Ale Ty to už máš :( 
Prihodí mi tam hlavne tag size. Hlavne ak tam niečo skopírujem. Sám od seba. Ja som už na to pýtal a povedali ste, že chyba je na mojej strane. Ale kde, keď mi to robí na PC aj NB?
Citace
Zkousel jsi se toho distinct zbavit presnejsimi joiny?
Nedá sa. Stav je nasledujúci:
  • Mám tabuľku predpisov s FKServiceParameters
  • Mám tabuľku Subaccounts s príznakom IsSubaccount + väzobnú tabuľku na byty M:N. Podúčty sú na sledovanie/rozpočítanie nákladov podľa užívateľa
  • Mám tabuľku faktúr, kde užívateľ zadá FKServiceParameters a FKSubaccounts
A problém je na svete. Neexistuje tu žiadna logika prepojenia tabuliek. Každý podúčet sa vždy odkazuje na všetky byty.
Príklad: mám 4 vchody/podúčty. Služba by sa mala vypísať len prvý vchod, ale mne sa vypíše pre všetky štyri. Viac a jednoducho napovie obrázok.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Kolik je šest plus čtyři (slovem):