Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Normalizacja
Corsarz
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
kwiateusz
post
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
Go to the top of the page
+Quote Post
Corsarz
post
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
Go to the top of the page
+Quote Post
miska
post
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.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 20:02