Tabele w różnych bazach danych

Tabele w różnych bazach danych
MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 34
0

Czy ma ktoś jakieś sensowne materiały / artykuły podejmujące problem podziału na kilka baz danych SQL? Udało mi się znaleźć jedynie jakieś wyrwane z kontekstu pytania na stacku. Nie mówię tu o backupowaniu danych, ale o wydzieleniu tabel i wrzuceniu ich do różnych baz. Chodzi mi o korzyści / wady, kiedy to się robi, kiedy nie powinno, co z relacjami, foreign keysami, jak to się ma do pozostałej architektury systemu (np. podziału na mniejsze serwisy), itd. Czy jest jakaś zasada, jakaś prosta odpowiedź, czy decyzja o takim podziale wymaga głębszej analizy, przygotowaina najpierw komplentego schematu tabel z relacjami?
Nie chcę podawać dla jakiego konkretnego problemu potrzebuję odpowiedzi, chciałbym na razie bardziej zorientować się w tematyce.

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
1

Ja widzę jedno rozsądne rozwiązanie. Dwie bazy: jedna baza dla aplikacji (jej ustawień, modułów, ew. loginów i dostępów), druga baza stricte dla danych klienta. Wtedy, gdy klient zażyczy sobie backup danych, to dostanie TYLKO swoje dane.

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
1

dzielenie logicznie spójnych danych na wiele baz jest wg mnie złe. Są inne rozwiązania jeśli problemem jest wydajność (innego możliwego problemu do rozwiązania w ten sposób nie widzę).

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5555
1

Czyżby po modzie na mikroserwisy i mikrofrontend nadeszła moda na mikro bazy?
Chyba nie, bo podział monolitycznej bazy był już robiony przy okazji mikroserwisów więc strzelam że materiały o mikroserwisach mogą być przydatne tutaj też. Zwłaszcza koncepcja kontekstu ograniczonego.

Czy widzę jakieś zalety mikrobaz danych pracujących z monolitem czyli pojedynczą aplikacją?
Chyba tylko wydajność lub ilość danych. Np podobno PostgreSQL działa dobrze tylko do 1T na jednej instancji

biela_
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: WPR
  • Postów: 136
1

Przy dużych systemach masz rozdział całości na kilka baz i serwerów

potem wszystko się spina szyną integracyjną

w starszych czasach np część do systemu sprzedażowego wymagane dane miała synchronizowane z głównego systemu, dzięki temu przy jakiejś wywałce innego serwera to sobie nadal działało osobno i można towar sprzedawać

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
2

Kolejny wątek, że OP nas opuścił ...

"w przyszłości może będzie integrowany" -> bazy zupełnie oddzielne, tzn nie projektowane do wymienialności baza-baza, tylko apliakcja-apliakcja.
EDIT: oczywiście baza każdej aplikacji kompletna, spójna, tzn w żadnej mierze nie "kaleka".

Marcin.Miga napisał(a):

Ja widzę jedno rozsądne rozwiązanie. Dwie bazy: jedna baza dla aplikacji (jej ustawień, modułów, ew. loginów i dostępów), druga baza stricte dla danych klienta. Wtedy, gdy klient zażyczy sobie backup danych, to dostanie TYLKO swoje dane.

To jest ważny pomysł

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.