Ik probeer mijn nieuws/tutorial systeem te normaliseren

Na het lezen van de tutorial op PHPHulp van Elwin en anderen lukt het nog steeds niet.

0NV
categorie (nieuws/tutorial)
id
artikel_naam
inleiding
datum
content
plaatje (thumbnail die bij de tutorial hoort)


1NV
??

Ik dacht dat er uiteindelijk zoiets uit moest komen maar ik heb geen idee:

CATEGORIE
id
categorie

ARTIKEL
id
categorie id
naam
inleiding
datum
content
plaatje

Maar of dit goed is?

B.v.d. Akka!
Zolang een artikel maar tot 1 categorie kan behoren zit dit er toch prima uit?

De kolommen die je nu in je artikelen tabel hebt, zijn allemaal artikel specifiek dus horen er ook daadwerkelijk in thuis.

Inderdaad is de categorie niet artikel specifiek, want meerdere artikelen kunnen tot 1 categorie behoren. Terecht een aparte tabel dus.
Voor de duidelijkheid zou je bij de categorie tabel gebruik moeten maken van id en naam, ipv id en categorie.

En inderdaad, dit is alleen goed wanneer een artikel maar tot 1 category kan behoren. En verder kun je nu ook geen categorie-en in categorien maken. Wil je dit wel dien je ook een parent_id in de categorie tabel te maken. Je zou er dan voor kunnen kiezen op parent_id 0 te maken voor de hoofdcategorien.
Zou dit de beste manier zijn om categoriƫn met subcategoriƫn te maken?

HOOFD-CATEGORIE
id
naam

SUB-CATEGORIE
id
parent_categorie
naam

ARTIKEL
id
categorie id
naam
inleiding
datum
content
plaatje
Ja, als je maximaal 1 subcategorie per hoofdcategorie wilt. Want in dit datamodel kun je geen subcategorie van een subcategorie aanmaken. Als je dat zou willen, zou je het volgende datamodel moeten gebruiken:

categorieen
--------------
id
naam
parent

artikelen
-----------
id
categorie_id
naam
...

In de kolom parent in de categorieen tabel geef je dan het id van de categorie op waar deze categorie een subcategorie van is. Is deze categorie een hoofdcategorie, dan vul je bij parent 0 in.
Ok die is beter, bedankt!

Reageren