-
Data: 2019-07-27 17:11:58
Temat: Serializacja obiektów w bazie danych - jakie podejście jest zalecane?
Od: Szyk Cech <s...@s...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Witam
Chcę rozpocząć nowy projekt od zera. Projekt będzie dotyczył prostego
programu edukacyjnego do nauki angielskiego (takie lepsze SuperMemo)
opartego o bazę danych. Program ma być dostosowany do użytku na
sprytnych telefonach komórkowych z systemem Android (oraz na tabletach i
PC z Windows lub Linux).
Chcę do tego projektu zrobić bazę danych. Jednak nie głupią.
Oczekiwane cechy modułu bazy danych:
* zamyka w sobie całą specyfikę biblioteki pośredniczącej, motoru i
zapytań Sql-a.
* struktura bazy danych generuje się automatycznie z klas C++. Klasy
zachowalne w bazie są wzbogacane o makra: PRIMARY_KEY,
FOREIGN_KEY(klasa.zmienna1, klasa.zmiennaN), INDEX, NO_STORE. Makra te
nic nie robią z poziomu C++, mają znaczenie tylko dla parsera klas
zachowalnych.
* przed zbudowaniem aplikacji jest uruchamiany parser klas zachowalnych
* parser klas zachowalnych wykrywa zmiany w klasach zachowalnych i
generuje: pierwszą wersję pliku struktury danych w SQL-u lub pacz w
porównianiu do poprzedniej wersji, oraz nową wersję klasy bazy danych.
* parser dodaje do pacza pustą i popsutą metodę migrateData() którą
trzeba naprawić i odpowiednio uzupełnić (bez naprawienia się nie
skompiluje).
* po skompilowaniu uruchamiana aplikacja wykrywa jakie pacze powinna
zastosować na bazie i w razie potrzeby ją aktualizuje w pełni automatycznie.
To wiem jak zrobić.
Natomiast nie wiem, czy generowane funkcje do obsługi bazy danych:
1. Powinny znajdować się w jednej super klasie?
2. Powinny być rozrzucone w klasach serializujących poszczególne obiekty?
Ja pierwotnie zrobiłem ten generator struktury baz danych i paczy do
nich tak że generował jedną super klasę. Jednak nie wiem czy to
prawidłowe podejście. Mi się wydaje, że tak, bo całą logikę bazy danych
miałem zawsze w jednej klasie jaką sobie przezywałem using-iem tak by
mimo podbijania wersji bazy nic nie zmieniać w kodzie.
Jakie są zalety użycia wielu klas (po jednej do każdej zachowalnej klasy?
Jak to robią korporacje? Jak się to robi w dużych systemach?
dzięki tym co wytrwali do końca
pozdro
Szyk Cech
Następne wpisy z tego wątku
- 27.07.19 21:39 Maciej Sobczak
- 27.07.19 21:57 Szyk Cech
- 28.07.19 21:58 Maciej Sobczak
- 29.07.19 09:07 Tomasz Kaczanowski
- 29.07.19 17:03 Szyk Cech
- 29.07.19 17:15 Queequeg
- 30.07.19 08:23 Tomasz Kaczanowski
- 30.07.19 10:51 Maciej Sobczak
- 31.07.19 18:30 Szyk Cech
- 31.07.19 18:40 Szyk Cech
- 31.07.19 18:52 wloochacz
- 01.08.19 13:41 Maciej Sobczak
- 02.09.19 14:56 M.M.
- 02.09.19 17:46 Szyk Cech
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-06-10 wyobrazcie sobie ze
- 2024-06-10 malowanie samochodu
- 2024-06-10 News from Poland
- 2024-06-10 Czy na pewno będą CŁA na chińskie samochody?
- 2024-06-09 Dlaczego w Polsce sie nic nie udaje, na przykładzie niebieskiego lasera a teraz perskowitów
- 2024-06-09 Dlaczego w Polsce sie nic nie udaje, na przykładzie niebieskiego lasera a teraz perskowitów
- 2024-06-09 Wykrywanie przerwy w długim przewodzie zakopanym w ziemi.
- 2024-06-09 Czemu news.chmurka.nwt jest taki wolny?
- 2024-06-11 Funbox 3.0 zakres adresów DHCP
- 2024-06-11 Re: Funbox 3.0 zakres adresów DHCP
- 2024-06-09 Miernik szybkości netu
- 2024-06-11 Panele PV w pionie (prawie).
- 2024-06-11 czy ta grupa żyje?
- 2024-06-11 Warszawa => Senior React Native Developer <=
- 2024-06-11 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=