hallo :)
ik wil een blog waarbij je reacties kan plaatsen. Per nieuwe post bij de blog moet je kunnen reageren. Als ik het nu goed begrijp moet je dan 2 tabellen nemen. Klopt dit onderstaande?
Blog
id
naam enzo
bericht
reacties
id (zelfde id als bij blog)
naam enzo
bericht
Is het goed dat álle berichten die bij elke blog horen door elkaar komen?
Dat is beter omdat je altijd moet proberen zoveel mogelijk "objecten" te scheiden, sowieso vanwege het feit dat het qua performance kan uitmaken, je database word minder groot omdat die namen niet elke keer hoeven terug te komen en je kunt en later nog leuke dingen mee doen, je hebt dan immers de users gescheiden en die zou je weer kunnen gebruiken om een koppeling te maken met iets anders , de mogelijkheden zijn eindeloos (mits je jans principe volgt ;-))
Nee dat klop niet helemaal. Een reactie moet je ook kunnen aanpassen b.v. en dat kan nu niet.
Een betere manier is:
Blog
id (primary key, auto_increment)
naam enzo
bericht
reacties
id (primary key, auto_increment)
blog_id (blog id, ook wel foreign key genoemd)
naam enzo
bericht
Wat is er fout met dit datamodel?
Je ziet twee velden, naam en bericht in de tabel Blog. Die velden komen ook voor in de tabel reacties. Dat is een verdubbeling die nergens voor nodig is. Van een blog hoef je alleen maar de titel te weten, meer niet. Het eerste bericht kun je gemakkelijk uit de tabel berichten halen door er een DATETIME aan mee te geven. Je mag hopen en verwachten dat een en dezelfde bezoeker vaker zal posten, dus is een tabel met namen van bezoekers op zijn plaats. Als iemand dan zijn naam verandert, verandert hij in alle posts.