Relational Model [Hulp]
Hi allen, ik wil graag een relational model bij de door mij gemaakte ER Diagram maken en hier ben ik mee bezig geweest, alleen ik snap het principe van de Foreign Key niet helemaal.
http://imgur.com/a/YljNT
http://imgur.com/ejIGO7S
Dit is wat ik zover heb gemaakt, alleen ik heb zelf het idee dat ik iets te veel foreign keys gebruik en dat dit niet hoort. Zou iemand me kunnen uitleggen wat ik fout doen en hoe ik het beter kan doen (ik weet dat study program een Weak Entity moet zijn trouwens)
http://imgur.com/a/YljNT
http://imgur.com/ejIGO7S
Dit is wat ik zover heb gemaakt, alleen ik heb zelf het idee dat ik iets te veel foreign keys gebruik en dat dit niet hoort. Zou iemand me kunnen uitleggen wat ik fout doen en hoe ik het beter kan doen (ik weet dat study program een Weak Entity moet zijn trouwens)
Students, Courses en Study programs zijn je entiteiten. Dit gaat goed. De entiteiten hebben relaties met elkaar.
Als voorbeeld kunnen studenten zich aanmelden voor een course. Deze hebben dus een relatie. Maar je moet jezelf dan nog wel even afvragen welke relatie je wilt gebruiken. een ManyToOne of een ManyToMany.
Toevoeging op 29/12/2016 15:06:25:
In dit geval kunnen studenten zich aanmelden voor meerdere cursussen. (many)
andersom kunnen cursussen aan meerdere studenten gegeven worden. (many)
Indien je het met deze stellingen eens bent zul je many-many relatie moeten bouwen en die ziet er net even anders uit als een oneToMany die gewoon een kolom 'student_id' in de course tabel krijgt:
ManyToMany
STUDENTS
-id
-name
-email
COURSES
-id
-title
-description
STUDENTS_COURSES
-student_id
-course_id
Als voorbeeld kunnen studenten zich aanmelden voor een course. Deze hebben dus een relatie. Maar je moet jezelf dan nog wel even afvragen welke relatie je wilt gebruiken. een ManyToOne of een ManyToMany.
Toevoeging op 29/12/2016 15:06:25:
In dit geval kunnen studenten zich aanmelden voor meerdere cursussen. (many)
andersom kunnen cursussen aan meerdere studenten gegeven worden. (many)
Indien je het met deze stellingen eens bent zul je many-many relatie moeten bouwen en die ziet er net even anders uit als een oneToMany die gewoon een kolom 'student_id' in de course tabel krijgt:
ManyToMany
STUDENTS
-id
-name
COURSES
-id
-title
-description
STUDENTS_COURSES
-student_id
-course_id
** quoteknip**
Dus nu bedoel je dat de relatie tussen Students & Courses Students_Courses is. Of in mijn ERD "Follow"?
In het geval van de relatie tussen Teachers & Courses krijg je dan het zelfde (dat is wat ik er nu van begrijp) maar als je dan een oneToMany hebt of oneToOne wat gebeurd er dan?
Zijn de student_id & courses_id in Students_Courses forgein keys? Neem aan van wel
Wat als je te maken krijgt met een weak entity zoals Assignments veranderd er dan iets of niet ?
Dus nu bedoel je dat de relatie tussen Students & Courses Students_Courses is. Of in mijn ERD "Follow"?
In het geval van de relatie tussen Teachers & Courses krijg je dan het zelfde (dat is wat ik er nu van begrijp) maar als je dan een oneToMany hebt of oneToOne wat gebeurd er dan?
Zijn de student_id & courses_id in Students_Courses forgein keys? Neem aan van wel
Wat als je te maken krijgt met een weak entity zoals Assignments veranderd er dan iets of niet ?
Gewijzigd op 29/12/2016 21:21:32 door - Ariën -
>> Dus nu bedoel je dat de relatie tussen Students & Courses Students_Courses is.
Ja. Dit is een join-table of in het Nederlands een koppeltabel.
Het is belangrijk dat je de verschillen begrijpt tussen many-one en many-many. one-one wordt in mijn optiek wat minder vaak gebruikt.
Lees deze pagina eens door: https://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561
(Let vooral even op de blauw-rode schema's)
Toevoeging op 29/12/2016 16:02:39:
>> In het geval van de relatie tussen Teachers & Courses krijg je dan het zelfde (dat is wat ik er nu van begrijp) maar als je dan een oneToMany hebt of oneToOne wat gebeurd er dan?
Dan leg je in feite een beperking op je relatie. zie de pagina die ik hierboven gaf.
>> Zijn de student_id & courses_id in Students_Courses forgein keys? Neem aan van wel
Correct. Ik adviseer ook om courses_id+student_id samen als primary key in te stellen om doublures te voorkomen.
>> Wat als je te maken krijgt met een weak entity zoals Assignments veranderd er dan iets of niet ?
Een weak entity geef je een foreignId KOLOM om iedere row HERKENBAAR te maken. Dit staat los van je relaties.
Ja. Dit is een join-table of in het Nederlands een koppeltabel.
Het is belangrijk dat je de verschillen begrijpt tussen many-one en many-many. one-one wordt in mijn optiek wat minder vaak gebruikt.
Lees deze pagina eens door: https://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561
(Let vooral even op de blauw-rode schema's)
Toevoeging op 29/12/2016 16:02:39:
>> In het geval van de relatie tussen Teachers & Courses krijg je dan het zelfde (dat is wat ik er nu van begrijp) maar als je dan een oneToMany hebt of oneToOne wat gebeurd er dan?
Dan leg je in feite een beperking op je relatie. zie de pagina die ik hierboven gaf.
>> Zijn de student_id & courses_id in Students_Courses forgein keys? Neem aan van wel
Correct. Ik adviseer ook om courses_id+student_id samen als primary key in te stellen om doublures te voorkomen.
>> Wat als je te maken krijgt met een weak entity zoals Assignments veranderd er dan iets of niet ?
Een weak entity geef je een foreignId KOLOM om iedere row HERKENBAAR te maken. Dit staat los van je relaties.
Gewijzigd op 29/12/2016 16:05:52 door Frank Nietbelangrijk
** quoteknip**
Oké duidelijk, dank u wel voor deze uitleg, vind het nu al veel duidelijker. Nu heb ik nog een vraagje. Als ik bijvoorbeeld de Students_Courses relatie in mijn ERD teken moeten de student_id en course_id er dan bij als artributen of worden deze alleen aangegeven in het relational model?
Toevoeging op 29/12/2016 22:24:00:
Ik heb nu het volgende gemaakt, vraag me nu alleen nog af wat er tussen Courses & Assignments moet komen, en wat er tussen students & study_program moet komen
http://imgur.com/a/0YdqJ
ERD en Relational model tot nu zijn te vinden in de link. Alvast bedankt
Oké duidelijk, dank u wel voor deze uitleg, vind het nu al veel duidelijker. Nu heb ik nog een vraagje. Als ik bijvoorbeeld de Students_Courses relatie in mijn ERD teken moeten de student_id en course_id er dan bij als artributen of worden deze alleen aangegeven in het relational model?
Edit:
Het is niet nodig om voorlaatste posts volledig te quoten, waardoor het topic lastig te lezen wordt. Deze quotes heb ik even weggeknipt.
Gelieve hier in het vervolg rekening mee te houden.
Gelieve hier in het vervolg rekening mee te houden.
Toevoeging op 29/12/2016 22:24:00:
Ik heb nu het volgende gemaakt, vraag me nu alleen nog af wat er tussen Courses & Assignments moet komen, en wat er tussen students & study_program moet komen
http://imgur.com/a/0YdqJ
ERD en Relational model tot nu zijn te vinden in de link. Alvast bedankt
Gewijzigd op 29/12/2016 21:23:28 door - Ariën -
Overweeg eens een EER Diagram editor te gebruiken :
https://dev.mysql.com/doc/workbench/en/wb-vertical-toolbar.html
https://dev.mysql.com/doc/workbench/en/wb-vertical-toolbar.html




