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.
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.