SQL Server – SQL tables for postal codes

Well

I am creating a database for a project that I am currently running, and this project contains addresses (customers, suppliers, etc.) whose addresses contain the postal code.

My question is as follows:

I have 3 tables – districts; counties; ZIP codes;

CREATE TABLE distritos(
    cd VARCHAR(2),  --Código Distrito
    nome_dist VARCHAR(50) not null,  --Nome Distrito
    PRIMARY KEY (cd),
);

CREATE TABLE concelhos(
    cd VARCHAR(2) not null, --Código Distrito
    cc VARCHAR(2), --Código Concelho
    nome_conc VARCHAR(50) not null, --Nome Concelho
    PRIMARY KEY (cc),
    FOREIGN KEY (cd) REFERENCES distritos(cd),
);

CREATE TABLE cp(
    cp_id INT IDENTITY(1, 1),
    cp_cc VARCHAR(2) not null, --Código Concelho
    cp_localidade VARCHAR(50) not null, --Nome Localidade
    cp_cp4 VARCHAR(4) not null, --CP4 Nº Código Postal
    cp_cp3 VARCHAR(3) not null, --CP3 Extensão Nº Código Postal
    cp_dp VARCHAR(50) not null, --Designação Postal
    PRIMARY KEY (cp_id),
    FOREIGN KEY (cp_cc) REFERENCES concelhos(cc),
);

What I'm up to is the relationship between these three tables, but I have a problem and can not imagine how to solve it.
The table ratio Concelhos with the table of Códigos Postais This is not possible because there are several communities with the same code and this is not unique.

I do not know if I have explained it well, but something is commenting and trying to explain it better.