Może nie zaczynaj planowania od tabel w MySQL, tylko zaplanuj sobie jak mają wyglądać twoje obiekty w aplikacji. Zapomnij na chwilę o bazie i rozrysuj sobie np. UMLem, albo dowolną inną notacją (jakieś kwadraty, wszystko jedno) obiekty i powiązania pomiędzy nimi. To może pomóc Ci w zobrazowaniu sobie problemu, a mapowaniem obiektów na bazę możesz zająć się później.
Jeśli chodzi o screeny, to MySQL pozwala trzymać obrazki w bazie, ale nie praktykuje się takiego podejścia. Nie praktykuje m.in. ze względu na to że pliki sporo ważą i ew. backup takiej bazy trwałby znacznie dłużej. Innym powodem jest kwestia obciążenia połączenia pomiędzy aplikacją a bazą danych.
Najlepiej pliki przechowuj standardowo w plikach, ew. w jakiejś zewnętrznej usłudze np. S3, a w polu które ma przechowywać plik, trzymasz tylko ścieżkę / link do pliku.