No se que Base de Datos estas ocupando asi que te lo explicare y luego te dejare la sintaxis para Oracle.... adecuala a tus necesidades de la BBDD que ocupas.
Creas una tabla PAIS con su ID, luego la tabla COMUNIDAD y a ella le das como llave Foranea el ID de pais y como llave primaria un identificador mas la llave foranea por lo que te quedara ID de la tabla mas ID de pais.
y para los EVENTOS simplemente pones la llave primaria de COMUNIDAD como llave foranea (recuerda que ahi ya va relacionado el pais) y creas un identificador.
Te quedaria algo mas o menos asi:
Código:
create table pais (
pai_codigo VARCHAR(3) not null,
pai_nombre VARCHAR2(100),
constraint PK_PAIS primary key (pai_codigo)
);
create table comunidad (
com_pais VARCHAR(3) not null,
com_id VARCHAR2(5) not null,
com_nombre VARCHAR2(100),
constraint PK_COMUNIDAD primary key (com_pais, com_id),
constraint FK_COMUNIDA_REFERENCE_PAIS foreign key (com_pais)
references pais (pai_codigo)
);
create table evento (
eve_id VARCHAR2(5) not null,
eve_pais VARCHAR(3),
eve_comunidad VARCHAR2(5),
constraint PK_EVENTO primary key (eve_id),
constraint FK_EVENTO_REFERENCE_COMUNIDA foreign key (eve_pais, eve_comunidad)
references comunidad (com_pais, com_id)
)
Espero te sirva