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

Projekt relacyjnej bazy danych wielu typów użytkowników

Twoja sprawa wygląda jak instancja klasy/podklasy.

Istnieją dwa klasyczne sposoby projektowania tabel SQL do obsługi podklas. Każdy ma zalety i wady.

Jeden ze sposobów nazywa się „dziedziczeniem jednotabelowym”. W tym projekcie jest tylko jedna tabela dla wszystkich typów użytkowników. Jeśli dana kolumna nie dotyczy danego wiersza, przecięcie jest pozostawione NULL. Można dodać kolumnę, aby wskazać typ użytkownika.

Inny sposób nazywa się „Dziedziczeniem tabeli klas”. Przypomina to odpowiedź, której udzielił Nanego, z kilkoma drobnymi zmianami. Jest jedna tabela dla użytkowników, ze wszystkimi wspólnymi danymi i polem identyfikacyjnym. Dla każdej podklasy istnieje jedna tabela z danymi dotyczącymi tej podklasy. Pole identyfikatora jest często konfigurowane jako kopia pola identyfikatora w pasującym wierszu w tabeli użytkowników. W ten sposób klucz podklasy może pełnić podwójną funkcję, działając zarówno jako klucz podstawowy, jak i jako klucz obcy odwołujący się do tabeli użytkownika. Ta ostatnia technika nazywa się „Wspólnym kluczem podstawowym”. Wymaga trochę programowania podczas wstawiania, ale warto. Wymusza charakter relacji jeden-do-jednego i przyspiesza niezbędne połączenia.

Możesz wyszukać wszystkie trzy projekty jako tagi w SO lub jako artykuły w Internecie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobieranie ostatniego rekordu w każdej grupie - MySQL

  2. Wydajność VARCHAR vs TEXT, gdy dane mieszczą się w wierszu

  3. opencart - Jak ręcznie wyświetlić moduł w pliku szablonu?

  4. Znajdź zduplikowane ciągi w bazie danych

  5. Jak mogę przebudować indeksy i zaktualizować statystyki w MySQL innoDB?