Witam,
potrzebuje zaprojektować plikową bazę danych z banalnym SZBD w C.
Baza danych to chyba dużo powiedziane, potrzebuje mieć 3 tabele zapisane do pliku z możliwością dodawania,usuwania,modyfikacji,wyszukiwania danych rekordów z mojego programu.
Moje założenia to:
-stała struktura - na stałe zdefiniowana lista kolumn wraz z ich długościami(stałymi)
-limit rekordów na tabele - powiedzmy 10.000
I teraz tak.
Pierwsza myśl -> zapisywanie jak leci z separatorami końca rekordu i wyszukiwanie po całym pliku.
Jednak to jest za brzydkie, za mało optymalne.
Druga myśl -> zapisywanie jak leci z separatorami + plik indeksowy gdzie będą zapisywane identyfikatory rekordów + offsety w pliku z danymi do nich. Fajne, ale co jeśli będziemy chcieli wyszukiwać nie tylko po ID ale także po którejś kolumnie? Wtedy dla tej kolumny musiałby być kolejny plik indeksowy itd.
Moje pytanie do Was.
Jak wybrać złoty środek między optymalizacją operacji na danych a skomplikowaniem struktury plików?
Projekt do którego to potrzebuje ma za zadanie pokazanie możliwości mechanizmów dostępu do plików systemie LINUX, baza danych jest tylko narzędziem do tego. Nie mniej jednak chciałbym żeby była ona w miarę sprawnie napisana.