MySQL - Jak zaprojektować bazę danych dla użytkowników z podziałem na rodzaje użytkowników

0

Witam, jednym z etapów projektowania mojej bazy danych jest utworzenie tabeli Użytkownicy. Wszystko by było ok, gdyby na tym miało się kończyć. Jednak w moim serwisie będzie co najmniej 3 rodzaje użytkowników. Użytkownik zwykły - czyli taki normalny użytkownik, nic szczególnego. Drugim rodzajem będzie Użytkownik typu Instruktor - o cechach takich, jak zwykły użytkownik + dodatkowo specyficzne informacje dla tego typu użytkownika - odbyte szkolenia, kwalifikacje, od kiedy pracuje w zawodzie i gdzie itp.....Jednocześnie w moim serwisie, instruktor może być też zwykłym użytkownikiem i korzystać z funkcjonalności jakie ma zwykły użytkownik, natomiast zwykły użytkownik nie może korzystać z funkcjonalności instruktora.
Trzecim rodzajem użytkownika będzie firma - cechy w większości inne niż cechy zwykłego użytkownika - nie będzie tu np. imienia i nazwiska i daty urodzin, czy płci, ale będzie np. adres firmy, telefon, fax, NIP.

Z tego, co wywnioskowałam, to użytkownik Zwykły jest uogólnieniem użytkownika typu Instruktor. Z kolei użytkownik typu Firma wygląda na to, że jest użytkownikiem nie powiązanym z użytkownikiem zwykłym.

  1. Moje pytanie brzmi: Jak zaprojektować tabele dla tego przypadku?
  2. Jak zaprojektować bazę danych dla sytuacji, w której Użytkownik będzie mógł oznaczyć innego użytkownika (każdego z tych 3 rodzajów), jako znajomego. Trochę mi się wszystko zagmatwało i nie mogę sobie poradzić.

Dziękuję za pomoc.

0

Skoro dany user może być dowolnym z trzech typów (lub więcej niż jednym typem zwykły i instruktor) to na początek mogła by się przydać tabela Users, UserTypes oraz tabela łącz pomiędzy tymi dwoma, relacja n do m.
User będzie wszystkich typów, do których będzie posiadał złączenie. W osobnych tabelach można umieścić informację przeznaczone dla konkretnego typu wraz z kolumną złączenia user-type jakiego dotyczy dany wpis.

1 użytkowników online, w tym zalogowanych: 0, gości: 1