Normaliseren
Wie kan me helpen iets te normaliseren (op de manier van Edgar Codd) , eventueel tegen een kleine vergoeding.
Tip: bij de tutorials staat ook een prima uitleg over normaliseren, ga hier ook eens mee aan de slag.
Edit: http://www.phphulp.nl/php/tutorials/3/150/ Je zou ook hier je probleem/uitdaging eens kunnen plaatsen, dan kunnen we met z'n allen meedenken en jou helpen. Begin eens met een overzicht van alle gegevens die je wilt wegschrijven in de database.
btw. het gaat om de onderstaande te normaliseren in de 0NV, 1NV, 2NV en 3NV. + de bijbehoordende ERD diagram ervan.
------------------------------------------------------------
Overzicht uitlening per band.
Titelnr : 74489
Titel : Nescio
Genre : Drama
Regisseur : Verhoef
Onderwerp : Verbeten strijd tegen het onrecht
Filmduur : 83 minuten
Huurprijs : Code A (€ 2,20 per dag, € 13,00 per week)
Bandnr Uitleendatum Retourdatum Klant
4774-47 23-2-02 24-2-02 37733 Jansen
27-2-02 28-2-02 74432 Pieters
4798-03 10-3-02 13-3-02 73884 Gerrits
… etc …. … etc …
------------------------------------------------------------
Aanvraag reservering
Datum : 23-6-02
Gewenste titel : Onraad in de kelder, horror
Aanvrager : 37733
Jansen P.
Kerkstraat 34
6944 NJ Maarssen
0352-749372
37654
Moerad, Y
Leiweg 13
6942 PP Maarssen
0352-673217
------------------------------------------------------------
En dit is de begeleidende text erbij:
Videotheek SeeYou leent, zoals te verwachten, videobanden uit aan de bij hen ingeschreven klanten. Daarbij maken ze o.a. gebruik van de onderstaande overzichten. Van een titel zijn over het algemeen meerdere exemplaren aanwezig. Een klant kan een band meer dan één keer lenen. Ook kan een klant een film laten reserveren. Ik heb de tutorial gezien en aandachtig doorgelezen maar ik krijg maar geen grip om op de juiste manier te normaliseren.
maar ik weet weinig tot niets van de situatie en wat er allemaal in de database opgeslagen behoort te worden, dus ik heb dit puur op basis van dit kleine stukje wat jij gegeven hebt gebaseerd. uit de gegevens die jij geeft kan ik zoiets als dit maken
Maar meer tips zijn natuurlijk altijd welkom. Ik heb niet echt een script, ik moet hiermee een database aanmaken in acces. Maar ik kan er maar niet de logica van inzien. Maar dankzij Stefan van Iwaarden heb ik toch een klein beetje inzicht in gekregen.
Dit lijkt vrij veel op een schoolopdracht he, dan is het heel belangrijk dat je het zelf leert. Wat zou je ervan zeggen dat we hier stap voor stap de normalisatie doen? Jij maakt dan eerst de 0e normaalvorm, wij kijken er dan naar, en geven je tips, dan de 1e normaalvorm, enzovoorts. anel
Het lijkt mij een ideaale manier,
Hier komt dan de NuldeNormaalvorm
ONV = Titelnr. RG(Bandnr, Uitleendatum, Retourdatum, Klant)) Titel, genre, regisseur, onderwerp, filmduur, huurprijs.
Ik zit wel met de probleem waar ik de aanvraag reservering moet plaatsen, moet ik die bij de 0NV integreren of moet daar een aparte normalisatie voor komen. @Robert
Loop onderstaande lijst GOED door of alles wat je nodig hebt er wel in staat!
ONV
BANDUITLEEN
Bandnr
Uitleendatum
Retourdatum
Reserveringsdatum
Voorletter
Achternaam
Adres
Postcode
Plaats
Telefoonnummer
Titel
genre
regisseur
onderwerp
filmduur
huurprijs 0-de normaalvorm is inventariseren, alles onder elkaar zetten (alle gegevens die je gebruikt komen erop.. (ook die die later nog wegvallen kunnen in je tabel))
BANDUITLEEN
RG Bandnr
RG Uitleendatum
RG Retourdatum
RG Klant
TITELNR (primary key)
Reserveringsdatum
Voorletter
Achternaam
Adres
Postcode
Plaats
Telefoonnummer
Titel
genre
regisseur
onderwerp
filmduur
huurprijs dag
huuprijs week
Naar mijn mening zitten er geen procesgegevens in, dus hoeft er ook niks weg te vallen ONV
(Titelnr, titel , genre , regisseur , onderwerp , filmduur , huurprijs dag , huurprijs week)
(Titelnr , bandnr , uitleendatum , retourdatum , reserveringsdatum)
(Titelnr , klant , voorletter, achternam , adres , postcode , plaats , telefoonnummer
Titelnr. = de primarykey 1NV:
Verder is het wellicht handig om de namen van de acteurs op te slaan, daar wordt vaak ook op gezocht. Waar is de tabel 'regiseurs' ? 1 regiseur kan meerdere films hebben gemaakt, ligt zelfs voor de hand.
Dan is het overbodig om voor regisseurs en acteurs nog een extra tabel moet aanmaken. Waar het mij om gaat is dat ik een overzicht uitlening per band kan krijgen en een aanvraag reservering kan doorvoeren.
Alleen waarom je 100x de naam Spielberg wilt opslaan, is mij volkomen onduidelijk. Sla deze naam 1x op en koppel hem dan 100x aan de diverse films. Dat is zoals een genormaliseerde database in elkaar hoort te zitten.
Verander je de naam dan naar S. Spielberg, hoef je dat slechts 1x te doen. Wat de acteurs betreft kan ik me daar ook in vinden, die informatie wil je toch al niet opslaan.
Frank, wat ben je weer uitermate scherp vandaag :)
Tabel: Titel
Titelnummer, titel, genre, regisseur, onderwerp, filmduur, daghuur, weekhuur, bandnummer.
Tabel: Bandgegevens
Bandnummer, uitleendatum, retourdatum, klantnummer.
Tabel: Reservering
Aanvraagdatum, klantnummer, titelnummer
Tabel: Klantgegevens
Klantnummer, Naam, Voorletter, Straat, Postcode, Plaats, Telefoonnummer
Het moet uiteindelijk in access weggeschreven worden! Wat ik voor me zelf getekend heb op papier:
Normaliseren heeft niets te maken met de invoer van gegevens, maar met de opslag van gegevens. En dezelfde gegevens, de naam van de regiseur in dit geval, sla je niet meerdere keren op. Daar kunnen we het lang en breed over hebben, maar wat je nu hebt is gewooon nog niet af.
Jouw methode van invoeren, dus met het handje, gaat de volgende regiseurs opleveren:
Spielberg
S. Spielberg
SPielberg
Steven Spielberg
Stephen Sielberg
etc. etc.
Toch vrees ik dat dit dezelfde persoon is...
Frank heeft gelijk, en weet je wat het mooie is?
Je kan een dropdown laten genereren uit die tabel, waaruit je de regisseur selecteerd, en verder kan je ook een veld "nieuwe regisseur" maken, waar je alleen een regisseur toevoegd. Het zoeken en toevoegen wordt hierdoor alleen maar gemakkelijker.
Frank heeft echt gelijk, het is beter met een losse tabel voor regisseurs. @anel
Tip: bij de tutorials staat ook een prima uitleg over normaliseren, ga hier ook eens mee aan de slag.
Edit: http://www.phphulp.nl/php/tutorials/3/150/
Gewijzigd op 01/01/1970 01:00:00 door Frank -
btw. het gaat om de onderstaande te normaliseren in de 0NV, 1NV, 2NV en 3NV. + de bijbehoordende ERD diagram ervan.
------------------------------------------------------------
Overzicht uitlening per band.
Titelnr : 74489
Titel : Nescio
Genre : Drama
Regisseur : Verhoef
Onderwerp : Verbeten strijd tegen het onrecht
Filmduur : 83 minuten
Huurprijs : Code A (€ 2,20 per dag, € 13,00 per week)
Bandnr Uitleendatum Retourdatum Klant
4774-47 23-2-02 24-2-02 37733 Jansen
27-2-02 28-2-02 74432 Pieters
4798-03 10-3-02 13-3-02 73884 Gerrits
… etc …. … etc …
------------------------------------------------------------
Aanvraag reservering
Datum : 23-6-02
Gewenste titel : Onraad in de kelder, horror
Aanvrager : 37733
Jansen P.
Kerkstraat 34
6944 NJ Maarssen
0352-749372
37654
Moerad, Y
Leiweg 13
6942 PP Maarssen
0352-673217
------------------------------------------------------------
En dit is de begeleidende text erbij:
Videotheek SeeYou leent, zoals te verwachten, videobanden uit aan de bij hen ingeschreven klanten. Daarbij maken ze o.a. gebruik van de onderstaande overzichten. Van een titel zijn over het algemeen meerdere exemplaren aanwezig. Een klant kan een band meer dan één keer lenen. Ook kan een klant een film laten reserveren.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
titels
-----------------
id | titelnr | titel | onderwerp | genreID | regisseurID | prijsID | duur
genres
------------------
id | genre
regisseurs
------------------
id | regisseur
prijzen
------------------
id | dag | week
klanten
------------------
id | naam | adres | postcode | plaats | telnr
uitleningen
------------------
id | klantID | titelID | datum | retour
reserveringen
------------------
id | klantID | datum
gereserveerdetitels
------------------
id | reserveringsID | titelID
-----------------
id | titelnr | titel | onderwerp | genreID | regisseurID | prijsID | duur
genres
------------------
id | genre
regisseurs
------------------
id | regisseur
prijzen
------------------
id | dag | week
klanten
------------------
id | naam | adres | postcode | plaats | telnr
uitleningen
------------------
id | klantID | titelID | datum | retour
reserveringen
------------------
id | klantID | datum
gereserveerdetitels
------------------
id | reserveringsID | titelID
maar ik weet weinig tot niets van de situatie en wat er allemaal in de database opgeslagen behoort te worden, dus ik heb dit puur op basis van dit kleine stukje wat jij gegeven hebt gebaseerd.
Post je script eens, misschien kan ik eens iets bedenken... (of andere mensen van phphulp)
Maar meer tips zijn natuurlijk altijd welkom.
Dit lijkt vrij veel op een schoolopdracht he, dan is het heel belangrijk dat je het zelf leert. Wat zou je ervan zeggen dat we hier stap voor stap de normalisatie doen? Jij maakt dan eerst de 0e normaalvorm, wij kijken er dan naar, en geven je tips, dan de 1e normaalvorm, enzovoorts.
Het lijkt mij een ideaale manier,
Hier komt dan de NuldeNormaalvorm
ONV = Titelnr. RG(Bandnr, Uitleendatum, Retourdatum, Klant)) Titel, genre, regisseur, onderwerp, filmduur, huurprijs.
Ik zit wel met de probleem waar ik de aanvraag reservering moet plaatsen, moet ik die bij de 0NV integreren of moet daar een aparte normalisatie voor komen.
Gewijzigd op 01/01/1970 01:00:00 door anel
Loop onderstaande lijst GOED door of alles wat je nodig hebt er wel in staat!
ONV
BANDUITLEEN
Bandnr
Uitleendatum
Retourdatum
Reserveringsdatum
Voorletter
Achternaam
Adres
Postcode
Plaats
Telefoonnummer
Titel
genre
regisseur
onderwerp
filmduur
huurprijs
BANDUITLEEN
RG Bandnr
RG Uitleendatum
RG Retourdatum
RG Klant
TITELNR (primary key)
Reserveringsdatum
Voorletter
Achternaam
Adres
Postcode
Plaats
Telefoonnummer
Titel
genre
regisseur
onderwerp
filmduur
huurprijs dag
huuprijs week
Naar mijn mening zitten er geen procesgegevens in, dus hoeft er ook niks weg te vallen
Gewijzigd op 01/01/1970 01:00:00 door anel
deze tut: ook bij wordt genoemd.
Tijd dus om verder te gaan met de 1-NV
Dat komt ook later pas, maar dit is dan wel goed voor zover ik zie.. (BANDUITLEEN is de titel die er in Tijd dus om verder te gaan met de 1-NV
(Titelnr, titel , genre , regisseur , onderwerp , filmduur , huurprijs dag , huurprijs week)
(Titelnr , bandnr , uitleendatum , retourdatum , reserveringsdatum)
(Titelnr , klant , voorletter, achternam , adres , postcode , plaats , telefoonnummer
Titelnr. = de primarykey
Iemand nog sugsesties!
Verder is het wellicht handig om de namen van de acteurs op te slaan, daar wordt vaak ook op gezocht.
Dan is het overbodig om voor regisseurs en acteurs nog een extra tabel moet aanmaken.
Alleen waarom je 100x de naam Spielberg wilt opslaan, is mij volkomen onduidelijk. Sla deze naam 1x op en koppel hem dan 100x aan de diverse films. Dat is zoals een genormaliseerde database in elkaar hoort te zitten.
Verander je de naam dan naar S. Spielberg, hoef je dat slechts 1x te doen.
Frank:
Waar is de tabel 'regiseurs' ? 1 regiseur kan meerdere films hebben gemaakt, ligt zelfs voor de hand.
Verder is het wellicht handig om de namen van de acteurs op te slaan, daar wordt vaak ook op gezocht.
Verder is het wellicht handig om de namen van de acteurs op te slaan, daar wordt vaak ook op gezocht.
Frank, wat ben je weer uitermate scherp vandaag :)
Naar mijn mening is de tabel regisseurs ook overbodig, omdat je elke binnenkomende titel toch zelf moet invoeren, en anders heb je een kleine db met een lijst van bijv. 100 regisseurs
Tabel: Titel
Titelnummer, titel, genre, regisseur, onderwerp, filmduur, daghuur, weekhuur, bandnummer.
Tabel: Bandgegevens
Bandnummer, uitleendatum, retourdatum, klantnummer.
Tabel: Reservering
Aanvraagdatum, klantnummer, titelnummer
Tabel: Klantgegevens
Klantnummer, Naam, Voorletter, Straat, Postcode, Plaats, Telefoonnummer
Het moet uiteindelijk in access weggeschreven worden!
anel:
Tja, wanneer je er zo over denkt, ga dan niet normaliseren...Naar mijn mening is de tabel regisseurs ook overbodig, omdat je elke binnenkomende titel toch zelf moet invoeren, en anders heb je een kleine db met een lijst van bijv. 100 regisseurs
Normaliseren heeft niets te maken met de invoer van gegevens, maar met de opslag van gegevens. En dezelfde gegevens, de naam van de regiseur in dit geval, sla je niet meerdere keren op. Daar kunnen we het lang en breed over hebben, maar wat je nu hebt is gewooon nog niet af.
Jouw methode van invoeren, dus met het handje, gaat de volgende regiseurs opleveren:
Spielberg
S. Spielberg
SPielberg
Steven Spielberg
Stephen Sielberg
etc. etc.
Toch vrees ik dat dit dezelfde persoon is...
Frank heeft gelijk, en weet je wat het mooie is?
Je kan een dropdown laten genereren uit die tabel, waaruit je de regisseur selecteerd, en verder kan je ook een veld "nieuwe regisseur" maken, waar je alleen een regisseur toevoegd. Het zoeken en toevoegen wordt hierdoor alleen maar gemakkelijker.
Frank heeft echt gelijk, het is beter met een losse tabel voor regisseurs.