Как правильно организовать базу данных для блога ?
Под каждую статью новую таблицу это бред, не стоит повторять этот путь.
был у меня проект даже не один а 10+ на поддержке там на каждую запись создавалась табличка с 1 записью.
Все хорошо работало но mysqadmin просто умирал, такую БД нельзя было перенести на другой хостинг mysqldump просто зависал при дампе. примерное количество таблиц было 3.2к-4к.
Создаете для статей таблицу для статей например posts
id int(11)
user_id int(11)
datecreated  timestamp 
dateupdated timestamp
content text
title varchar(255)
h1 varchar(255)
Для фоток photos
id int(11)
post_id int(11)                 это ссылка на пост_id
path                                путь к фотке например /storage/photo/a1/d1/d2/(md5).jpg 
desctiption varchar(255)
datecreated timestamp
dateupdated timestamp
Для фоток я обычно так храню путь к оригиналу full 
для меньших картинок в имени файла есть прификсы
250_(md5).jpg
250x250_(md5).jpg
Cскачиваем фреймворк laravel или Yii1-2 создаем миграции на основе 2х схемок выше.
Используем внутренний генератор фреймворка для создания моделей.
Создаем нужные контроллеры и пишем код.
Можно и без ООП сделать но это будет долго.
Можно поставить worpress и добавить пару плагинов для расширения записей например ACF но у него галерея платная а остальные поля бесплатны.
А даже если не делают - не важно, пробуйте. Будет хорошо - оставите так, будет плохо - сделаете иначе. Это же первый проект, это же самое интересное, это самое то, чтобы учиться!
Как вариант, чтобы крепить фотографии: сделайте своего рода вики-разметку. То есть чтобы вставить фото - пишется код и указывается номер фотографии из загруженных. Здесь же плюс будет, вдруг кто-то не захочет загружать фотографии к вам, а добавит на внешний хостинг. Тогда надо будет просто хранить plain-текст и выгружать его по запросу.