Prosta baza danych

0

Hej, chcę zrobić prostą bazy danych gdzie będą informacje (imie, wzrost itp) o osobach. Ta baza ma być stałej wielkości powiedzmy 100 osób a po przekroczeniu 100 nowe osoby mają być nadpisywane na miejsca od początku. Ma być opcja modyfikacji, dodawania elemtów i kasowania. Wszystkie informacje bede mial w strukturze i nowe osoby beda po prostu obiektami. Z jakiego kontenera najlepiej skorzystać do przechowywania tych osób. Bo jeśli bym chciał używać tablicy/wektora to sporo problemów napotykam typu numeracja, w jaki sposob wybierać obiekty do modyfikacji i co po ich usunięciu. Czy obiekty powinny mieć jakiś numer porządkowy i jesli tak to czy on powinien być w strukturze czy np po prostu przy wyświetlaniu elementów? Czy korzystać z iteratorów czy bezpośredniego dostępu do elementów.

Jest ktoś w stanie mi powiedziec czego najlepiej uzyc aby ominąć różnego rodzaju pułapki które wystąpić by mogły w innych kontenerach. Jaki kontener będzie najodpowiedniejszy?

0

przy stałych 100 elementach najlepsza będzie statyczna tablica, od której będziesz tworzył widoki w zalezności od potrzeb. Kasowanie poprzez np zapisanie flagi deleted, wiec wiadomo, że nie tworzysz widoku dla takiej danej. Możesz dać więcej flag typu np modified (bedziesz wiedzial, co nadpisać, choc przy stałych 100 elementach lepiej będzie zapisać po prostu wszystko do pliku jako zrzut pamięci wręcz). Do tego potem w zależności jaki widok tworzysz takie kontenery używasz dalej.

0

No ale właśnie z flagami będzie dużo kodu i będzie trudno czytelny. Poza tym jak chcę użyć zwykłej tablicy to jeśli zapełnię ją 100 osobami, potem usunę osobę np z pozycji 59 to muszę sam zadbać o przesunięcie wszystkich powyżej 59 o jeden w dól i dodanie nowej osoby na końcu. Będę musiał więc na nowo pisać implementację która jest w kontenerach.

0

nie w widoku będziesz miał tylko 59 takich, które nie mają flagi deleted ustawionej. Widokmoże być wektorem, mapą, lista - w zależności co chce się pokazać i tam bedą wskaźniki do odpowiednich pól

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