It's a good basic design.
You don't need a separate table for each class and parents.
Rather, just add a 'class' column to your table. 'Freshman', 'Sophmore', etc. (e.g., 'Parents'). This would be an inherently smarter design.
Populate this field with a pulldown menu on your entry page.
You might save the text in the database rather than as a text file. Not much overhead, and text would be searchable, in case anyone cared. Also it would allow you control text length.
Good to keep the photos as separate files with links, however.
Also, probably you want LastName, FirstName columns.
Using these ideas, you could produce some helpful reports:
Alpha student list
SELECT LastName, FirstName, Class From ClassTable
order by LastName, FirstName, Class
Alpha class list
SELECT LastName, FirstName, Class From ClassTable
order by Class, LastName, FirstName
Freshmen needing photo upload:
SELECT LastName, FirstName From ClassTable
WHERE Photo=''
AND Class='Freshman'
etc.
Let me commend your thoughtfulness in how you set things up, and applaud you for posting for discussion.