Szyk Cech
unread,Jul 27, 2019, 11:12:00 AM7/27/19You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
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