As your site is mostly about posted articles and documents,
I'd go for a structure of a few "static" PHP/HTML templates that define the layout for the various sections of your site.
You can use post/get/session values to remember what needs to be displayed,
and the articles and docs can be retreived from the database as the template is executed.
What the datatypes should be is a matter of looking at what you want to store in the columns.
Just make sure that you have proper indexing and database normalization.
If things get big and complex, normalization makes your day.
You could store the texts as html, and use CSS tags to define the style.
That way, if you ever decide to change the style, changing the Stylesheet will change it all, so you don't have to go through all the posts in your database.
NoteL: that does mean you have to be prepared, so use a different style for subjects, bodies, quotes, typed-text etc.