Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Projekt DB:jedna duża DB dla wszystkich klientów lub wiele małych DB

Jednym z pytań, na które chciałbym odpowiedzieć, jest to, czy kiedykolwiek potrzebujesz zobaczyć dane dotyczące klientów do własnego raportowania lub użytku? W takim przypadku musisz wybrać numer jeden, w przeciwnym razie będziesz mieć koszmar, aby uzyskać dobre raporty.

Czy będziesz dokonywać jakichkolwiek dostosowań przez klienta? To wskazywałoby, że oddzielenie rzeczy może być lepszym wyborem. Jeśli nigdy nie będziesz dostosowywać, nie oddzielaj się.

Pracowałem z systemami we wszystkich tych opcjach, a pierwsza z nich jest zdecydowanie najlepsza do długoterminowej konserwacji. Jednak wszystkie są wykonalne, jeśli jesteś dobrze zorganizowany i dobrze planujesz. Jeśli wybierzesz opcję osobną, musisz mieć możliwość wypychania zmian do wszystkich klientów, a zatem musisz wprowadzać zmiany w bazie danych za pomocą skryptów, które są utrzymywane w kontroli źródła. Może być nawet konieczne zachowanie kontroli źródła według wersji bazy danych, aby klienci mogli zdecydować się na uaktualnienie lub nie. Oczywiście w wariancie 1 nikt nie ma możliwości pozostania na starej wersji. Jeśli to lepiej odpowiada potrzebom Twojej firmy, jest to plus dla opcji 1.

Zdecydowanie zgadzam się z Ollie Jonesem, jeśli użyjesz opcji pierwszej, musisz mieć dobry projekt zabezpieczeń bazy danych, aby uniemożliwić klientom oglądanie danych innych klientów. Kiedyś przenieśliśmy klienta z serwera, na którym był on jedynym klientem, do współdzielonej bazy danych i tylko jeden proces, który nie zapytał o identyfikator klienta (nie był potrzebny w starym systemie, a programiści byli niestaranni) skończył się wysyłaniem e-mailem wszystkich przedstawiciele handlowi wszystkich pozostałych klientów z informacjami o pierwszym kliencie. Kosztowało to firmę dużo pieniędzy (zarówno w celu rozwiązania problemu, wysłania przeprosin w e-mailu, w wyniku czego prawie straciliśmy klienta i musieliśmy dać mu kilka przerw w kosztach, aby go zatrzymać) i wiele przeprosin, a programista tylko wąsko tęsknił za utratą pracy. Niech to będzie lekcja, której nie nauczysz się na własnej skórze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Uporządkuj według rozmiaru/długości pola

  2. Mysql:Wybierz wszystkie dane między dwiema datami

  3. Wiele zliczeń i grupowanie według

  4. jak zabezpieczyć połączenie z bazą danych Google za pomocą publicznego adresu IP (0.0.0.0)?

  5. Jak mogę połączyć wiele tabel SQL przy użyciu identyfikatorów?