El 99% de lo que estás preguntando es tema de PHP. MySQL sólo almacenaría la imagen en una tabla, según tu propuesta.
De todos modos te cuento que no es buena práctica guardar las imágenes en las tablas. Lo que habitualmente se hace es guardarlas en una carpeta del sitio y guardar la ruta relativa en una tabla. De ese modo tienes varias ventajas:
- Si debes actualizar la imagen, no necesitas actualizar las tablas, basta con subir el archivo con el mismo nombre y a la misma carpeta.
- Evitas tener que consumir exceso de recursos de la base, ya que leer una cadena de texto con la ruta usa menos bytes que leer un archivo. Los hosting suelen ponerte un límite de Kb de transacciones en la base, y si pones las imágenes en la tabla estarás transfiriendo mucho innecesariamente. Liberar la cantidad de Mb/hora de las bases implica pagar mas al hosting...
- Evitas tener que hacer la conversión entre el blob y la imagen, que insume tiempo y procesos, en su lugar le dejas al PHP que resuelva el problema de tomar la imagen directamente.
- Los backups son mucho más rápidos, porque requieren menos Mb.
- Migrar de servidor es mucho más simple. Sólo requiere la misma estructura de carpetas, y los mismos archivos de imágenes.
- Reparar rutas dañadas en las tablas puede hacerse manualmente. Reparar BLOBS corruptos no es una opción.
. Otros...
Muchas de las formas de hacer lo que quieres las puedes encontrar en las
FAQs del Foro de PHP.
¿Lo consultaste?