Bueno .. yo soy pro-normalización xD .. así que eso de tener una misma tabla con X camos de fotos me limitaría a que en un momento dado tenga un artículo con más fotografías que las que definí en mi única tabla .. Por eso uso "dos" tablas y las relaciono .. A la tabla "imagenes" le puedes crear (relacionado con la del contenido) tantos registros como gustes ..
Lo de referenciar a tus imagenes por un tag própio tipo [foto] .. es buena idea .. Es más .. podrías ajustarlo más si usases una sintax para tu tag tipo: [foto=1] .. [foto=2] .. .etc.
Ese nº yo lo relacionaría con la imagen que guardo en mi tabla de "imagenes". Podría ser ese nº (a la rápida) el identificador de ese registro de imagen (el id_imagen de la tabla imagenes) .. o el nombre de la foto (tedrías que ser único . .cosa que ya será tu id_imagen .. si usas campos autoincrementales y únicos como debes hacerlo).
con una pequeña expresión regular podrías reconocer tu "tag" (BBcode que llaman en otros sitios) y tomar ese nº para usalo en una consulta tipo:
ver_imagen.php?id_imagen=nº
Código PHP:
<?
//conectas a tu BD .. etc ..
$sql="SELECT ruta_imagen FROM imagenes WHERE id_imagen='".$_GET['id_imagen']."'";
$consulta=mysql_query($sql);
echo mysql_result($consulta,0,"ruta_imagen");
?>
y con tu expresion regular (u otros métodos) .. pones tu código HTML de llamada a tu imagen que llama a tu script que obtiene la imagen en concreto (bajo esa consulta SQL) por ese identificador de tu imagen ..
<img src="ver_imagen.php?id_imagen=23">
Un saludo,