![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
dopiero co zaczynam przygodę z sql i wymyślam sobie różne zadania do ćwiczeń i teraz tak się zastanawiam na jedną relacją. Zakładam, że z takich (przykładowych) tabel nie uda się utworzyć relacji: users(userid, login, pssword) dane_firmy(firmaid, nazwa, adres, branza, telefon, mail) Myślę, że tu by mogła być tylko relacja utworzona tak, że użytkownik jednocześnie rejestruje się i podaje dane firmy, wtedy userid=firmaid. Natomiast teraz tak sobie myślę, że trzeba byłoby utworzyć takie tabele: users(usersid, login, password) dane_firmy(firmaid, userid, nazwa, adres, branza, telefon, mail) Teraz jest sprawa nieco prostsza po wystarczy zrobić users.userid=dane_firmy.userid. Tylko pytanie jak przypisywać w tabeli dane_firmy userid? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 654 Pomógł: 121 Dołączył: 27.10.2007 Skąd: Poznań, Łódź Ostrzeżenie: (0%) ![]() ![]() |
Według mnie struktura tabel w bazie powinna być inna. Zgodnie z rzeczywistym stanem rzeczy to użytkownik jest przypisany do firmy. Istnieje tutaj relacja użytkownik -> firma i firma -> wielu użytkowników...
Dlatego też tabele powinny zawierać następujące kolumny:
Może zdarzyć się sytuacja, że użytkownik nie będzie przypisany do żadnej firmy wtedy w kolumnie "firmid" w tabeli "users" należy wpisać wartość null. Powyższa struktura opisuje tylko przypadek kiedy użytkownik może być jednocześnie przypisany tylko do jednej firmy. Jeśli jednak chciałbyś mieć możliwość przypisania danego użytkownika do wielu firm musiałbyś skorzystać z tabeli pośredniczącej:
Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 21:19 |