Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak zaprojektować bazę?, Projektowanie bazy pod odpowiednie zapytanie
Marys91
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
askone
post
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:
  1. users:
  2. -userid
  3. -firmid
  4. -login
  5. -password
  6.  
  7. dane_firmy:
  8. -firmid
  9. -nazwa
  10. -adres
  11. -branza
  12. -telefon
  13. -mail


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:
  1. users-firms
  2. -userid
  3. -firmid


Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 21:19