[Delphi] Zbyt długi klucz

0

Witam. Korzystam z tablic asocjacyjnych. Właściwie wszystko jest ok, ale w związku że pracuje na bardzo dużej ilości rekordów staram się optymalizować wszystko co się da. Otóż, jako klucz najczęściej stosuje kombinacje jakiś pól w rekordzie, np. Lista[PESEL+IMIE]. Tylko że taki klucz w tym przypadku akurat ma ponad 11 znaków, co pewnie w jakimś tam minimalnym stopniu spowalnia wyszukanie rekordu. Nie wiem na dodatek jakie ograniczenie długości mają klucze asocjacyjne. Moje pytanie: czy jest jakiś algorytm który wygeneruje mi krótszy klucz na podstawie PESEL+IMIE? Jakieś hashowanie or something?

0

Ale po co, skoro PESEL jest unikatowy?

0

To był tylko przykład. Czasami nie mam unikatowych pól tj. PESEL i wtedy kombinuje z NAZWISKO+IMIE+IMIEMATKI itp. Bo chodzi mi konkretnie tylko o to żeby skrócić klucze, nawet sam PESEL jest już w miarę za długi.

0

Witam, jak chcesz przyśpieszyć wyszukiwanie to korzystaj z pól mających indeks, jak nie masz to
pozakładaj indeksy, jeżeli możesz to łącz/wybieraj dane z tabel kluczami typu liczbowego. pozdrawiam

0

Krzychu0000 moze czas przesiąść się na jakieś bazy SQLowe :>

0

Akurat tak się składa że zawodowo pracuje na bazach SQL ;) , ale do swoich małych aplikacji tablice asocjacyjne w zupełności wystarczają.

0
Krzychu0000 napisał(a)

Akurat tak się składa że zawodowo pracuje na bazach SQL ;) , ale do swoich małych aplikacji tablice asocjacyjne w zupełności wystarczają.

jakoś to stoi w sprzeczności z Twoim pierwszym postem :p

Nie pisałem o jakichś kobyłach typu Oracle czy MSSQL ale coś małego (co działą nawet bez serwera) np. SQLite czy FB ebedded

0

No ale co mają wspólnego SQL i tablice asocjacyjne bo temat trochę zjechał :P Pytanie w pierwszym poście padło: czy można jakimś algorytmem wygenerować skróconą wersję klucza niż jego pierwowzór. Jeżeli nie to trudno, pozostanę przy tych długich :P . Tablice asocjacyjne potrzebuję do szybkiego zarządzania rekordami w pamięci. Z plikami póki co sobie radzę... ;)

BTW: Czy TStringList indexuje w jakiś sposób swoje itemy, czy tylko stringhashlist (czy jakoś tak)?

0

no mowa była o szybkim wyszukiwania a jakby nie było bazy mają coś z tym wspólnego :p

Co do TStringList to nie są one indexowane w zaden sposób, pomijając przypadek, kiedy lista jest sortowana

1 użytkowników online, w tym zalogowanych: 0, gości: 1