As far as the text goes, it will really depend on how you do the input, or more likely who is going to do the input. You can store your text along with the html tags for heading <h1> paragraph <p> etc in a text field.? With embedded tags, you can store the whole article in one field if that will work in your situation. Question then is, how do you generate those tags in the first place? Will you type them in as you type the text
Photos should be stored as files in a subdirectory, just store the file name in your db. You can store them in a blob field, but it is not the best solution.
The absolute db solution is of course multiple tables:
tblArticles
article_id
heading
tblParagraphs
para_id
article_id
sub_head
text
tblPix
pic_id
para_id
file_name
hieght (to help with the formatting)
width (although you may want x,y relative co-ordinates instead)
title
Should do the trick. Each article will have multiple entries in the paragraphs table, and each paragraph can have none, one, or more than one picture.
This is the most flexible as it allows you to focus on the content during input and someone with no html can do it.