![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hej, potrzebuje znormalizować bazę docelową - dziennik zajęć. Wymagane pola - w załączniku, mam problem w ustaleniem klucza podstawowego...jakby ta sama ocena nie mogla sie pojawiać na jednych zajęciach to kluczem byłby {NR_prowadz,nr_cz,NR_kurs,dzień,ocena}...no ale w tym przypadku...no właśnie, gdzie jak wyodrębnić klucz podstawowy?link jak wygląda tabela http://www.fotosik.pl/pokaz_obrazek/pelny/...a797499a87.html(IMG:http://images26.fotosik.pl/61/f72252a797499a87med.jpg)
Odpowiem sam sobie...Musi być dodatkowe pole, ponieważ żadna kombinacja atrybutów, która jest teraz nie zapewni unikalności...dodatkowy atrybut...ale jaki? (unikalność nie będzie zachowana ponieważ ta sama ocena może sie pojawić tego samego dnia , na tym samym przedmiocie) Ten post edytował Corsarz 17.08.2007, 22:06:46 |
|
|
![]() |
![]()
Post
#2
|
|
Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
moze zwyczajnie id? bedzie o 1 wieksze dla kazdego rekordu 1,2,3...10
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Pomnysł z stawieniem autoID nie podoba mi się, z tego powodu, ze to ID bedzie rownoczesnie kluczem podstawowym, i po 3 postaci normalenj baza bedzie wygladala tak:
{Nr_ucznia PK, Imie_ucznia,Nazwisko_ucznia,Semestr} {Nr_prowadzacego PK, imie_prowadz, nazwisk_proawdzac} {Nr_przedmiotu PK, nazwa_pzredmiotu} i nieszczessna {ID_rekordu PK, nr_ucznia FK, nr_prowadzacego FK, nr_przedmiotu FK, dzien, ocena, obecnosc,inne} Mysle raczej nad dodaniem atrubutu {czas_wystaswienia} //w znaczeniu godzina:minuta:sekunda wowczas po 3 postaci normalnym mialbym: {(Dzien, czas_wystawienia, nr_ucznia) PK, Ocena} i {(Nr_przedmiotu(FK),nr_ucznia(FK), dzien, czas_wystawienia) PK, Obecnosc,Kolokwium,Inne,nr_prowadz (FK)} //czas_wystawienia po to, ze w jednym dniu mogą byc 2 zajecia tego samego pzredmiotu pozostale 3 tabele jak w pomysle z AutoID Jak myslicie? EDIT2 Pomysł z polem Czas_wystawienia jest chybiony z uwagi na to, ze czas wystawienia oceny byłby także czasem sprawdzania obecnosci. Modyfikacja bazy polega na dodaniu 2 pól, pola "ID_rekord", które rozroznia te same oceny, na tych samych zajeciach oraz pole "Godzina_zajec" (2 cyfr), które bedzie odpowiadało za rozróznianie ewnetualnych podwójnych zajec tego samego dnia. W 3 postaci normalnej wyglada to tak: {(Dzien, nr_ucznia,ID_rekordu) PK, Ocena} {(Nr_przedmiotu(FK),nr_ucznia(FK), dzien, godzina_zajec) PK, Obecnosc, Kolokwium, Inne_uwagi, ID_prowadz FK} {Nr_ucznia PK, Imie_ucznia,Nazwisko_ucznia,Semestr} {Nr_prowadzacego PK, imie_prowadz, nazwisk_proawdzac} {Nr_przedmiotu PK, nazwa_pzredmiotu} Problem jednak pojawia się inny...zastaanawielm się nad nim juz ponad 2 godziny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://img247.imageshack.us/img247/3489/beztytuujp2.jpg) W Tabeli3 czescia klucza podst jest "godzina_zajec" a w tabeli tabela1 "Rekord_ID", problem w tym,ze te pola nie są powiązane z zadnym innym - i nie będą, tabele niektre bede laczyl czescia klucza podstawowego :/ Powyzszy schemat działa 'w praktyce', ale czy to nie jest blad projektowania bazy, przez ktory pozniej wsyztko sie wykrzaczy :/ Ten post edytował Corsarz 18.08.2007, 10:07:48 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 23.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Jak tak bardzo chcesz normalizowac to ja bym rozbił jeszcze :semestry.
Godzina zajęć jeśli wogóle potrzebna wywalił bym do TABELI 1 Reszta wydaje mi sie ok. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 20:02 |