🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych
1 messages
1 total messages Started by Szyk Cech Sat, 27 Jul 2019 15:10
Serializacja obiektów w bazie danych - jakie jest zalecane podejście
#195678
Author: Szyk Cech
Date: Sat, 27 Jul 2019 15:10
52 lines
3299 bytes
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
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads