[Delphi] Baza danych i dodanych ;)...

Odpowiedz Nowy wątek
2002-12-20 17:24

Rejestracja: 17 lat temu

Ostatnio: 17 lat temu

0

Hmm. Wyobraźmy sobie tabelę:

| id | dana1 | dana2 | dana3 | dana4 | dana5 | itd. np do 20

ilość wierszy nieograniczona.
i teraz tak: zakładamy że dane(n) to stringi o max 20 znaków.
każde dodanie kolejnego rekordu do bazy utworzy nam pliki
o nazwach: dana1.baza , dana2.baza itd. oczywiście w miejsce tutaj w miejsce słowa dana - będzie wpisana wartość z tego konkretnego rekordu. i tym sposobem przy dodaniu jednego rekordu do bazy automatycznie utworzy nam się (w tym przykładzie) 20 plików...
jeżeli natomiast w kolejnym nowo-dodawanym rekordzie wartość dowolnego pola z 'dana(n)' się powtórzy to otworzy istniejący już plik o tej nazwie i dopisze do niego id tego rekordu...

Oczywiście jest to najprostszy sposób koncepji działania takiej bazy danych...

Teraz pytanko: Zakładając, że taka baza będzie naprawdę duuuża, to jak ona się zachowa jeżeli jako mechanizm wyszukujący dane zastosujemy zwykłe:

{
ifFileExist(gdzieś tam) to otwórz plik, pobierz id(n) i zwróć do formularza
}

Nie będzie ona niezwykle szybka? Innymi słowy można by tak rzec, że to nie klucz przelatuje przez baze i pobiera i wyłapuje zgodne id, tylko przez klucz przelatuje cała baza jak przez sitko;) i zostaje tylko szukane id....

głupie co...??? proszę o opinie

Pozostało 580 znaków

2002-12-20 17:26

Rejestracja: 17 lat temu

Ostatnio: 1 rok temu

0

Ciekawy sposób na baze. Moje gratulacje ;-)

Pozostało 580 znaków

2002-12-20 19:50

Rejestracja: 17 lat temu

Ostatnio: 17 lat temu

0

hej no! nikt poza Drajwerem się nie ustosunkuje do tego posta??? [???]

Pozostało 580 znaków

2002-12-20 20:40

Rejestracja: 17 lat temu

Ostatnio: 2 lata temu

0

oczywiście w miejsce tutaj w miejsce słowa dana - będzie wpisana wartość z tego konkretnego rekordu
Oczywiście nie rozumiem (jestem tylko warzywem). Na prawdę nie wiem o co chodzi w tym zdaniu. (trochę się czepiam).

jeżeli natomiast w kolejnym nowo-dodawanym rekordzie wartość dowolnego pola z 'dana(n)' się powtórzy to otworzy istniejący już plik o tej nazwie i dopisze do niego id tego rekordu...
Czemu to ma służyć?

Kurcze, to chyba mnie przerasta, nie wiem o co chodzi, aczkolwiek z pozoru wygląda to na odwzorowanie haszujące w postaci dwuwymiarowej tablicy (tylko po co wtedy nam klucz=id, skoro możemy się odwoływać bezpośrednio)

Może czytelniejszy opis + ilustracja dodawania i wyjmowania elementu z bazy by pomógł ?

Pozdrawiam.

Pozostało 580 znaków

2002-12-20 22:35

Rejestracja: 17 lat temu

Ostatnio: 4 lata temu

0

...Zakładając, że taka baza będzie naprawdę duuuża, to jak ona się zachowa jeżeli jako mechanizm wyszukujący ...

Ja pracuję na bazach w których jest 50 000 do 300 000 rekordów i uważam że są spore, ale naprawdę duuuże baza może zawierać znacznie więcej rekordów,
jeśli w twojej bazie będziesz miał ich zaledwie 50 000 to ilość plików utworzonych wyniesie 1 000 000 co przy 4 KB klastrach zabierze 4GB na dysku moje bazy razem z indeksami zajmują około 100 MB.
Wyszukiwanie trwa zazwyczaj mniej niż 1 sekundę.

zamiast tworzyć pliku zrób drugą bazę z polami np:
id | nazwa_danej |ID_w_bazie1 |

zrób odpowiednie indeksy, powiąż je relacjami i o wyszukiwanie nie musisz sie martwić.

Pozostało 580 znaków

Odpowiedz

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