Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Powiązania między tabelami
Forum PHP.pl > Forum > Bazy danych > MySQL
bartek10
Witam, otóż mam pewien problem i nie za bardzo wiem jak go rozwiązać... Może ktoś z Was będzie miał jakiś sensowny pomysł.
Otóż mam tabelę studenci i przedmioty. Powiązanie relacją wiele do wiele. W nowej tabeli będę przechowywał chociażby oceny z danego przedmiotu. Dalej mam tabelę specjalności, które są połączone z tabelą przedmioty. (Każda specjalność może mieć różne przedmioty - jak na studiach:D). Ową specjalność też muszę powiązać jakoś ze studentem, żeby wiedzieć jaką specjalność studiuje dany student. Tak też zrobiłem. No i nie wiem czy dobrze kombinuję czy może ktoś miałby lepszy schemat powiązania (czy w ogóle się da to jakoś inaczej powiązać)..

Studenci * - * Przedmioty * - 1 Specjalności 1 - * Studenci

Drugi mój problem to taki, że chciałbym jakoś sensownie rozwiązać taką kwestię... Powiedzmy, że jest 10 studentów, którzy studiują na specjalności A. Do specjalności A należy 10 przedmiotów. Po pewnym czasie doszliśmy do wniosku, że do specjalności A dobrze byłoby dorzucić 1 przedmiot... Nie można zmienić bezpośrednio specjalności, gdyż dla starych Studentów nie może ulec zmianie pula przedmiotów.. W jaki sposób to rozwiązać?

Czekam na jakiekolwiek sugestie odnośnie tego problemu - za wszystkie będę bardzo wdzięczny. Pozdrawiam
MadMark
Czyli potrzebne Ci rozwiązanie opisowo-teoretyczne. Wyczuwam pracę inż w powietrzu.

Zacznijmy od użytkowników: każdy użytkownik MUSI mieć ROK w którym zaczynał studia (int 4)
Teraz specjalizacje: każda specjalizacja MUSI mieć pole z ID kierunku na którym się odbywa i MUSI mieć datę (rok) od którego jest prowadzona ORAZ MUSI mieć pole aktywności (rok, default null) - czyli kiedy (jeśli w ogóle) specjalizacja została zamknięta.
Kierunki: każdy kierunek musi mieć ID wydziału do którego przynależy.

Przedmioty: każdy przedmiot MUSI mieć ID specjalizacji na której jest wykładany ORAZ MUSI mieć ROK od którego obowiązuje ORAZ MUSI mieć pole aktywności (rok, default null).
Oceny: oceny to najbanalniejsza tabela z id oceny, id przedmiotu, id prowadzącego, timestamp (data wystawienia), i id studenta

Studenci i specjalizacje: osobna tabela pokazująca id studenta i id specjalizacji.


Wprowadzenie roku rozpoczęcia studiów i roku wprowadzenia przedmiotu daje pewność, że będziemy pokazywać (dla każdego studenta) tylko te przedmioty, których okres od otwarcia do zamknięcia zawierał lata studiów studenta.

Można też osobną tabelę z polami id studenta | rok | id przedmiotu czyli kto kiedy co studiował.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.