Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Nível Básico - Relacionamento entre tabela cliente e cidad


diogosjdr

Question

Olá pessoal, sou novo por aqui e estou começando a programar agora.

Minha dúvida é o seguinte.

Eu tenho uma tabela cliente e quero relacioná-la com endereço (rua, número, cep) bairro, cidade, estado e país. Como endereço é único, ele fica na tabela cliente certo? Foram criadas então 4 tabelas para bairro, cidade, estado e país.

Após isto relacionei estas 4 tabelas diretamente com a tabela clientes (1 para muitos).

Só que eu tenho outras tabelas como prestador de serviço, fornecedores, funcionários que também necessitam de bairro, cidade, estado e país.

Assim, quando fiz todos os relacionamentos meu diagrama ficou uma bagunça. Tem alguma maneira mais inteligente de fazer este relacionamento? Criando uma tabela intermediária ou qualquer outra coisa diferente disto?

Valeu pessoal.

Edited by diogosjdr
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

oi diogosjdr,

tu disse que tem a tabela cliente e mais 4 tabelas (bairro, cidade, estado, pais). Dessa forma tu não deveria relaconar estas 4 tabelas diretamente com cliente, porque não há necessidade.

Ficaria mais ou menos assim:

pais

pk_pk_pais

estado

pk_pk_estado

pk_fk_pais

cidade

pk_pk_cidade

pk_fk_pais

bairro

pk_pk_bairro

pk_fk_cidade

cliante

pk_cliente

fk_bairro

prestador_de_servico

pk_prestador_de_servico

fk_bairro

para tuas 4 tabelas, cada fk, frá parte da pk também, para cliente e prestador de serviço, será apenas fk.

não sei se consegui ser clara, mas qualquer duvida pode falar.

Link to comment
Share on other sites

  • 0

Boa tarde Diogo,

Acrecentando apenas mais algumas coisas:

Sua pergunta: Como endereço é único, ele fica na tabela cliente certo?

Na modelagem em si, os dados de endereços não são dados "pertencentes" aos clientes. Estes dados estão relcionados a um lugar físico (logradouro, cep, complemento, ponto de referência, etc).

Prefira criar uma tabela Endereço. Nela você fará um relacionamento com a tabela de Cliente. Desta forma, conseguirá colocar na nova tabela de Endereço não somente os endereços de clientes, mas também de fornecedores, serviços, etc.

O endereço de clientes NÃO é único. No levantamento de requisitos, poderá sim ter esta regra que identifique este relacionamento. Mas perceba: e se o cliente tiver endereço de casa e de trabalho? :.)

Espero que ajude....

Link to comment
Share on other sites

  • 0

Muito obrigado pelas dicas Angélica!!

oi diogosjdr,

tu disse que tem a tabela cliente e mais 4 tabelas (bairro, cidade, estado, pais). Dessa forma tu não deveria relaconar estas 4 tabelas diretamente com cliente, porque não há necessidade.

Ficaria mais ou menos assim:

pais

pk_pk_pais

estado

pk_pk_estado

pk_fk_pais

cidade

pk_pk_cidade

pk_fk_pais

bairro

pk_pk_bairro

pk_fk_cidade

cliante

pk_cliente

fk_bairro

prestador_de_servico

pk_prestador_de_servico

fk_bairro

para tuas 4 tabelas, cada fk, frá parte da pk também, para cliente e prestador de serviço, será apenas fk.

não sei se consegui ser clara, mas qualquer duvida pode falar.

Fulvio, muito obrigado. Com a ajuda de vocês 2 adiantei bastante meu primeiro banco de dados. Espero daqui a um tempo poder contribuir também. Um abraço.

Boa tarde Diogo,

Acrecentando apenas mais algumas coisas:

Sua pergunta: Como endereço é único, ele fica na tabela cliente certo?

Na modelagem em si, os dados de endereços não são dados "pertencentes" aos clientes. Estes dados estão relcionados a um lugar físico (logradouro, cep, complemento, ponto de referência, etc).

Prefira criar uma tabela Endereço. Nela você fará um relacionamento com a tabela de Cliente. Desta forma, conseguirá colocar na nova tabela de Endereço não somente os endereços de clientes, mas também de fornecedores, serviços, etc.

O endereço de clientes NÃO é único. No levantamento de requisitos, poderá sim ter esta regra que identifique este relacionamento. Mas perceba: e se o cliente tiver endereço de casa e de trabalho? :.)

Espero que ajude....

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...