Hola...
Si la noticia es del nivel país, en municipio guardas el primero que pertenezca a ese país, y lo mismo para el departamento. Y a la hora de hacer una consulta para las noticias de X país solo haces algo como:
Código SQL
[-]
select p.nombre pais, n.titulo, n.texto from noticia n
join municipio m on m.idmunicipio = n.idmunicipio
join departamento d on d.iddepartamento = m.iddepartamento
join pais p on p.idpais = d.idpais
where n.nivel = 0 and
p.nombre = 'X'
select d.nombre departamento, n.titulo, n.texto from noticia n
join municipio m on m.idmunicipio = n.idmunicipio
join departamento d on d.iddepartamento = m.iddepartamento
where n.nivel = 1 and
d.nombre = 'X'
Saludos...