Autor Téma: Sklamanie z "bohyne"  (Přečteno 9807 krát)

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #15 kdy: 14-07-2016, 00:13:57 »
no ja za to nemôžem, ale musel som vám to ukázať, aj ked je to len polovica dat (cele to ma 50kB), to je údaj z cenníka o kompatibilite danej baterky ... ale tu informaciu potrebujem..aby som vhľadal tu správnu

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #16 kdy: 14-07-2016, 05:17:36 »
Ale to je v pořádku. Potíž je v tom, že ji ukládáš blbě. Tohle patří do (textového) BLOBu, ne do VARCHARu, ještě navíc indexovaného! Pokud to vysloveně potřebuješ prohledávat, tak do extra tabulky se vztahem 1:N ke zboží.

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #17 kdy: 14-07-2016, 05:56:58 »
Když tak o tom uvažuju, asi radši M:N.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #18 kdy: 14-07-2016, 07:45:03 »
no ja za to nemôžem, ale musel som vám to ukázať, aj ked je to len polovica dat (cele to ma 50kB), to je údaj z cenníka o kompatibilite danej baterky ... ale tu informaciu potrebujem..aby som vhľadal tu správnu
Hmm, a kde je napsano, ze s nim mas zachazet jako s jednim zmolkem  dat :o

Proste takhle s daty pracuje snad nejaka sekretarka ev. PHP strikac, kteri si pod pojmem databaze dokazi predstavit max. excelovskou tabulku...

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #19 kdy: 14-07-2016, 20:21:38 »
vychádza mi z tohoto, že to rozsekám na 1000 znakov ktore ide indexovat, len budem musieť dávat pri tom pozor, na rozseknuté slová, a ako uvažujem tak uvažujem, aj tak je to komplikácia, dostal som aj radu rozsekať to na slová, zdá sa mi to implementačne najčistejšie, ale zase zisťovať či tam už to slovo je a riešiť spojovaciu tabuľku, sa mi až tak dobré nezdá.... tak stále neviem ako to vo firebirde najvýhodnejšie poriešiť, exisstuje na to nejaká odpoveď?

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #20 kdy: 14-07-2016, 20:24:49 »
alebo to tam mlátiť hlava nehlava, len s okazom na zdroj, a pred každým novým impotom to deletovať?

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1262
  • Karma: 51
    • Verze Delphi: 10.3
Re:Sklamanie z "bohyne"
« Odpověď #21 kdy: 14-07-2016, 20:26:40 »
Rozsekat na jednotlivé notebooky. Nemá smysl z toho dělat "indexovatelné" 1000znakové položky, protože to ničemu nepomůže (index by se uplatnil, když by se hledaly záznamy, ve kterých to políčko začíná určitým textem, nikoliv které obsahují text uvntiř). Tj. správnější bude, mít tabulku-číselník, kde ke každému notebooku budeš mít přidělené číselné ID. A pak další tabulku, která bude propojovat jednotlivé baterie (číselné ID) s notebooky, do kterých pasuje.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #22 kdy: 14-07-2016, 20:35:19 »
Citace
alebo to tam mlátiť hlava nehlava, len s okazom na zdroj, a pred každým novým impotom to deletovať?
Tým si ma teraz dostal. Treba zmeniť aj spôsob zápisu údajov.
Ak máš len jediný takýto prípad, tak by som to rozbil na tabuľky (pokiaľ si dobre pamätám údaje)

- Výrobca
- Skupina NB
- Typy NB
- Batérie
- Prepojovacia tabuľka M:N TypyNB_Baterie

S takouto štruktúrou DB potom môžeš robiť menšie zázraky. Rôzne prehľady, štatistiky...
Trocha to potrvá, ale stojí to zato. Ja by som si to hodil to texťáka a tam to rozsekal na riadky. Na nejaký parser nemám ;)
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #23 kdy: 14-07-2016, 20:44:13 »
Aby si nepovedal. Robota na 2 minúty. V prílohe to máš na riadky. PSPad a zameniť čiarky za "nový riadok"
Môžeš z toho urobiť csv súbor, alebo to hodiť do excelu. To všetko sa dá pekne importovať do tabuľky.
S dodatočnými ručnými úpravami to musíš zmaknuť za pol dňa. Potom 8)
« Poslední změna: 14-07-2016, 20:46:40 od Stanislav Hruška »
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #24 kdy: 14-07-2016, 22:29:16 »
Na nejaký parser nemám ;)
Na to (co jsi poslal) staci instance TStringList, nastavit ji Delimiter na carku a ten zmolek textu strcit do DelimitedText. A mas seznam radku a ty radky rozbit je obdobne jednoducha uloha.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #25 kdy: 14-07-2016, 22:34:41 »
rozsekať to na slová
Jenomze to bylo v kontextu, kdy jsi nam tvrdil, ze potrebujes prohledavat fulltextove text a nepochlubil ses, ze tak prasacky chces obchazet navrh normalizovaneho DB schematu a import toho zmolku dat do nej >:(

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #26 kdy: 15-07-2016, 05:58:50 »
vychádza mi z tohoto, že to rozsekám na 1000 znakov ktore ide indexovat,
Já to vzdávám. V původním blbém řešení indexování nefunguje, tak zvolíš ještě horší řešení, které technicky vzato indexovat půjde, ale index v něm nebude mít žádný význam pro rychlé vyhledávání. Rady, jak to udělat správně, jsi dostal, přesto si stále meleš svou. To se ale pak nediv, že ti databáze hází klacky pod nohy.

Citace
dostal som aj radu rozsekať to na slová, zdá sa mi to implementačne najčistejšie, ale zase zisťovať či tam už to slovo je a riešiť spojovaciu tabuľku, sa mi až tak dobré nezdá....
No to není. Radu rozdělení na slova jsi dostal v době, kdy jsi tvrdil, že ti jde o fulltext. Tobě ale nejde o fulltext ale o vyhledávání záznamů obsahujících konkrétní příznak (není podstatné, že příznak není jedno slovo ale sousloví).

Citace
exisstuje na to nejaká odpoveď?
Odpověď je, uvědom si, co děláš, a pak na to použij nástroj, který je na tu věc určený. V tvém případě vztah M:N mezi tabulkou baterií a tabulkou modelů notebooků.

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #27 kdy: 15-07-2016, 08:35:03 »
na upresnenie, tie data sú v podstate podrobný popis produktov,
ako som písal v http://forum.delphi.cz/index.php/topic,15318.0.html
s miernou úpravou
mam DB s cca 280.100 záznamov
s dĺžkou 1-5000 má cca 279.000 záznamov
s dĺžkou 5.000-10.000 má cca 1000 záznamov
s dĺžkou 10.000-50.000 má cca 100 záznamov
prehľadáva sa ešte názov produktu ale ten má do 150 znakov...
+part number, distributor, kod sklad, ean, výrobca

nie sú to len baterky ...

ale podstatná informácia je, že potrebujem nájsť len záznamy, v ktorých sa to nachádza, takže to skúsim takto:
uložím si aj cely text, ale len pre potreby zobrazenia, nie pre vyhľadávanie, a rozsekám to na slová so spojovacou tabuľkou a toto zaindexujem
je to takto OK? dám potom report, ako to dopadlo

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #28 kdy: 15-07-2016, 09:16:31 »
ale podstatná informácia je, že potrebujem nájsť len záznamy, v ktorých sa to nachádza,
Jenomze z tebe popis problemu leze jak z chlupate deky :(

Podstatna informace je, CO a KDE potrebujes hledat. A teprve pak muzes definovan nejake DB entity a zpusob prace s nimi.

Snad srozumitelny priklad je adresa - pokud ji budes napr. jen zobrazovat, staci ji nacpat celou do jednoho pole a jejim formatem se prilis nezabyvat a snad ji prohledavat pomoci LIKE. To je nejspis to, o co se snazis s tim rozdilem, ze adresa je kratka a jeji casti nevytvareji nazvajem mnoho nejednoznacnosti.

Ale uz v okamziku, kdy nebudes chtit udelat flat tabulku a mit v ni duplicity adres a jeste v ruznem nekanonickem formatu, tak bys ji potreboval vyclenit do extra entity v nejakem kanonizovanem tvaru a uz tam by ses dostal do obrovskych, rekl bych strojove jen obtizne resitelnych problemu.

A pokud s ni potrebujes pracovat napr. vypisovat vsechny zaznamy se stejnym PSC, lide ve stejne ulici, dome apod. budes muset tu adresu rozdelit na entity. A to se neobejde bez porozumeni obsahu, kanonizaci dat (co je spatne udelanych systemu, kde programator definoval, ze cislo domu je napr. integer, takze neni schopen vkladat do DB cisla domu napr. 13a nebo 02 (2 = cislo orientacni ev. popisne, 02 = cislo evidencni a v jedne obci mohou existovat vsechna=> analytik/programator o dane problematice vedel kulovy a vysledek tomu odpovida).

Takze pokud chces poradit, tak nejdriv laskave definuj poradne svuj problem, jinak je to ztrata casu pro vsechny zucastnene.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #29 kdy: 15-07-2016, 10:50:03 »
Osobne si myslím, že už má dostatok informácii nato, aby sa mohol rozhodnúť. Len si musí spočítať všetky + a -.

1 - musí úplne prepracovať štruktúru DB
2 - prekonvertovať existujúce údaje do novej DB
3 - z toho vyplýva zmena práce s DB a tvorba nových formulárov
4 - prácnosť, čas
5 - má na to čas a prostriedky?

Osobne Ti Feri odporúčam zobrať papier (aspoň A3 :) ) a tam si to všetko písomne a graficky hodiť. Budeš mať jednoznačne lepšiu orientáciu v probléme.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.