![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszytskich na forum!!
Moj problem polega na tym, że od dłuższego czasu walcze ze skonstruwaniem bazy, która spełniałaby następuje kryteria: 1) Kazdy student należy do jakies grupy (tylko do jednej) 2) Każda z grup ma przypisane konkretne przedmioty 3) Grupy sa przypisane do prowadzacych 4) Kazdy z nauczycieli moze uczyc wiecej niz jeden przedmiot ale zarazem jeden przedmiot moze byc prowadzony przez więcej niz jednego prowadzacego 5) Kazdy student otrzymuje ocene z danego przedmiotu u odpowiedniego prowadzacego Czy ktos ma pomysł na skonstruwanie takiej relacyjnej bazy? Byłbym wdzięczny |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Praca domowa? Projekt na kurs z baz danych? Nie odrabiamy tu prac domowych.
Nawet nie pokazales z czym masz problemy, co udalo ci sie zrobic. Zlecenie -- to na inne forum. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam screen bazy zrobiony w accesie, ale nie bardzo wiem jak go tutaj dodac, bo z tego co widze znacznik img wskazuje na odnośnik do strony, a swojej nie posiadam, więc troche ciężko to pokazać!! |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Do umieszczania screenow sluza serwisy takie jak np. imageshack, nie trzeba miec swojego serwera.
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
student:
Kod id id_grupa nazwisko .... grupa: Kod id nazwa .... przedmiot: Kod id nazwa .... grupa_przedmiot_prowadzacy: Kod id_grupa id_przedmiot id_prowadzacy prowadzacy: Kod id nazwisko .... ocena: Kod id_student id_przedmiot .... Tak na szybko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Na wstępie dziękuje za wszelkie odpowiedzi. Powiem troszke szerzej, baza będzie mi potrzebna do portalu internetowego. Dlatego też potrzebuje jak najoptymalniejszej bazy, która będzie obsługiwana z poziomu php. Poniżej podaje screen z tego co narazie mam: (IMG:http://img301.imageshack.us/img301/8085/bazastartowa4nl.jpg) Wiem, że troszkę może wydawać sie to zamotane, ale chce zeby tak było że każda z grup ma charakterystyczne dla siebie przedmioty i tu właśnie troszke sie pogubiłem, bo może można by to zrobić troche sprytniej jakoś, ale może wasze oko dostrzeże w tej bazie jakies nieprawidłowości. Pozatym jak sadzę potrzbne będzie jeszcze w tabelach oprócz loginów i haseł, id_sesji, ponieważ każdy użytkoenik będzie musiał się logować do systemu. Dodam jeszcze, może to cenna informacja, że studenci bedą mieli możliwość po zalogowaniu przesyłanie swoich plików na serwer, więc jeśli ktoś już widzi istotną cechę, która przydałaby się w bazie do odrożnienia, który plik pochodzi od którego usera to byłbym wdzięczny. Dziekuje Ten post edytował miki555 16.03.2006, 08:29:37 |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Pozatym jak sadzę potrzbne będzie jeszcze w tabelach oprócz loginów i haseł, id_sesji, ponieważ każdy użytkoenik będzie musiał się logować do systemu A po co id sesji pamietac w bazie? Sesja jest pamietana przez serwer, ty nie musisz.Cytat Dodam jeszcze, może to cenna informacja, że studenci bedą mieli możliwość po zalogowaniu przesyłanie swoich plików na serwer, więc jeśli ktoś już widzi istotną cechę, która przydałaby się w bazie do odrożnienia, który plik pochodzi od którego usera Mozesz dorobi tabele, w ktorej piszesz jaki plik na dysku nalezy do jakiego usera. Mozesz tez stworzyc katalogi, ktore bedą sie nazywaly tak, jak id danego studenta. Pliki danego studenta bedziesz wrzucal do danego katalogu. No i oczywiscie mozesz tez połączyć obie te metody (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Mozesz dorobi tabele, w ktorej piszesz jaki plik na dysku nalezy do jakiego usera. Mozesz tez stworzyc katalogi, ktore bedą sie nazywaly tak, jak id danego studenta. Pliki danego studenta bedziesz wrzucal do danego katalogu. No i oczywiscie mozesz tez połączyć obie te metody Można jakos szerzej rozwinąć. Moze jakis przykład tabeli i miejsce w którym mogła by się znajdować. Jeśli dobrze rozmumiem to mniej wiecej coś takiego: Kod Id_student | nazwisko | imie | login | haslo | id_grupy | id_katalog Kod Id_katalog | id_plik Kod Id_plik | nazwa_pliku Pozdrawiam Ten post edytował miki555 16.03.2006, 13:49:10 |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
przy zalozezniu, ze katalog ma miec nazwe id_studenta, to pole id_katalog w studencie jest zbędne.
dodatkowa tabela: Kod id_student nazwa_pliku opis_pliku typ_pliku ..... Ta tabela jest poto, bys nie musial latac po dysku i szukac plikow dla kolesia, tylko po tabeli. oczywiscie musi sie ona zgadzac z zawartoscią na dysku Ale mozna ja olać i zostawic tylko podzial dysku na katalogi. Ale to juz zalezy od Ciebie, jak ci bedzie wygodniej edit: oczywiscie tabele co dodales w poprzednim poscie, są zbędne |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
A nie ma tam jeszcze jakies tabeli łączącej, bo przy tym założeniu jeden student może mieć tylko jeden plik jeżeli tak jak mowisz id_studenta będzie sie łączyć z id_studenta z tabeli z plikami. Po drugie słyszałem że jest jeszcze możliwość, trzymania plików w bazie, czy takie cos ma sens jeżeli tak to w jaki sposób to zrealizować.
Pozdrawiam |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Kilka uwag dotyczacych stylu.
W encji (tabeli) grupy masz id_grupa a w pozostalych encjach jako klucza obcego uzywasz id_grupy. Moim zdaniem lepsze byloby zachowanie identycznego brzmienia tego pola we wszystkich encjach tym bardziej ze robisz tak we wszystkich pozostalych przypadkach. Dobra praktyka jest oczywiscie podawanie nazw w mianowniku, poza tym nie radze stosowac skrotow typu id_spec (oczywiscie to sprawa indywidualna), ale nie raz juz sie zlapalem na tym ze jak przychodzi co do czego to sie czlowiek zastanawia czy to bylo id_spec, czy id_specjal. I jeszcze nazwy encji - nie jestes konsekwentny grupy_pracownicy - DOBRZE grupa_przedmiot - ZLE - powinno byc grupy_przedmioty |
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat A nie ma tam jeszcze jakies tabeli łączącej, bo przy tym założeniu jeden student może mieć tylko jeden plik jeżeli tak jak mowisz id_studenta będzie sie łączyć z id_studenta z tabeli z plikami. A skąd ci to przyszlo do glowy? Przeciez ta tabela co ci podalem, jest wiąząca. rekordy: std1, plik_1, opis,... std1, plik_2, opis,... //.... std2, plik_x, opis,... std1, plik_y, opis,... i tak dalej Cytat Po drugie słyszałem że jest jeszcze możliwość, trzymania plików w bazie, czy takie cos ma sens jeżeli tak to w jaki sposób to zrealizować. Pole typu BLOB. ale lepiej tego nie uzywac.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Oki to teraz uściślijmy:
Plik musi być widoczny u danego usera , ale tez w danym przedmiocie czy w takim razie tabela o któej mówiłes: Kod id_student nazwa_pliku opis_pliku typ_pliku ..... może być dołączona w taki sposób: student: Kod id_student nazwisko imie ..... studenci_oceny: Kod id_student id_przedmiot id_ocena pliki: Kod id_student nazwa_pliku opis_pliku typ_pliku ..... i tak połączenie jest między id_student z tabeli (studenci _oceny) a id_student z tabeli (pliki). Czy to zda egazmin? |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Plik musi być widoczny u danego usera , ale tez w danym przedmiocie To czemu dopiero teraz o tym mowisz?mozesz wiec jeszcze porobic podkatalogi, o id przedmiotu. ale to juz kosmetyka. Dodaj wiec pole jeszcze id_przedmiot. Cytat id_student id_przedmiot nazwa_pliku opis_pliku typ_pliku jesli nie zrobisz podkatalogow w studencie, to dla roznych przedmiotów, pliki te same bedą musialy miec rozne nazwy. ale to pestka (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
hmm
Tak dużo o tych katalogach i podkatalogach mowisz, że zaczyna mnie to zastanawiać czy to się sprawdzi w tym przypadku. Otóż baza nie będzie zawierała na stałe użtykowników, co semestr będą się oni zmieniać i poratal będzie musiał być tak zrobiony aby prowadzacy mógł z pozimu php wprowadzić nowe osoby do bazy co równa się z przydzeleniem im kont na nowe pliki, a chciałbym żebyn nie trzeba było za każdym razem przebudowywać struktury katalogow. Musi to tak działać żeby admin mógł wszytsko obsugiwać z poziomu php! Mam nadzieje ze tak mniejwiecej jasno wyraziłem o co mi chodzi. Dziekuje |
|
|
![]()
Post
#16
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
i w czym problem? pojawiają sie nowi studenci, dostają nowe id i po klopocie. gdu student dodaje nowy plik, to skrypt patrzy czy istnieje dla niego katalog. jesli nie - to tworzy. admin tego nie musi robic. to pojdzie z automatu
Mozesz tez napisa skrypt, ktory usunie katalogi danego studenta. ja nie widze zaddnego problemu... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Po co ta zabawa z katalogami. Skoro studenci beda dodawac pliki z poziomu strony, a wykladowcy te pliki pobierac z poziomu strony to odzwierciedlanie czesci tabel na poziomie katalogow jest moim skromnym zdaniem zadaniem zbednym. Wystarczy jeden katalog na pliki. W momencie dodawania pliku system zmieni jego nazwe dodajac prefix bedacy id studenta i to calkowicie wystarczy do odroznienia ktory plik do kogo nalezy. Nazwy plikow wystaczy zapisac w odpowiedniej tabeli w bazie danych, dodac klucz obcy z id studenta oraz drugi z przedmiotem i po sprawie. Nie trzeba dbac o spojnosc struktury katalogow z baza danych.
|
|
|
![]()
Post
#18
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
masz rację. Nie jest to niezbędne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Ja to zaproponowalem z przyzwyczajenia. Lubie mieć porządek na dysku. A to zaden wysilek stworzyc katalog. Moze ciut większy od dodania prefixu. ale prefix trzeba by też dodawac na podstawie przedmiotu. No bo chyba moze zdarzyc się, ze koles dla rożnych przedmiotów wrzuci pliki, o tej samej nazwie. edit: Cytat Nazwa to wlasciwie moze sie ograniczac do id pliku może (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nazwa to wlasciwie moze sie ograniczac do id pliku ktory zostal mu przydzielony w bazie w momencie dodawania, a powiazanie z uzytkownikiem, przedmiotem i pierwotna nazwa pliku moze byc przechowywana w bazie danych.
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
hmm
Tak w pierwszej chwili pomysł bigZbig wydał mi się sensowniejszy, ale podejrzewam, że wszytsko okaże sie w praktyce. BigZbig czy mogłbyś podać przykład tej tabeli i ewentulnie najlepsze miejsce jej dołączenia? Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 18:24 |