Fórum 2 FK para o mesmo campo....alguém pode ajudar...... #336368

17/01/2007

0

Olá,

Estou desenvolvendo um sistema da seguinte maneira. Tenho uma tabela de fornecedores e uma tabela de clientes. E tenho também uma tabela de CONTATOS que eu guardo todos os tipos de contatos, tanto dos clientes como dos fornecedores. Com os seguintes campos:

CON_PESSOA = ´C´ se for Cliente e ´F´ se for fornecedor
CON_ID = grava o código do cliente ou do fornecedor, buscado nas respectivas tabelas.

O que estou tentando bolar é uma maneira de ligar a tabela contato nas tabelas cliente e fornecedor através do campo CON_ID.

Alguém faz alguma idéia de como proceder????

Muito obrigado, desde já....


Lschmitk

Lschmitk

Responder

Posts

17/01/2007

Emerson Nascimento

avalie se criar tabelas auxiliares para relacionamento ´muitos para muitos´ não pode ser mais interessante...
+-------------------+
| Fornecedor        |
+-------------------+
|ID_FORNECEDOR  (PK)||--------+
|NOME               |         |
|ENDERECO           |         |
|[ETC...]           |         |
+-------------------+         |
                              |
     +-------------------+    |        +----------------+
     | FornecedorContato |    |        | Contato        |
     +-------------------+    |        +----------------+
     |ID_FORNECEDOR  (PK)|>---+   +---<|ID_CONTATO  (PK)|>-+
     |ID_CONTATO     (PK)|>-------+    |NOME            |  |
     +-------------------+             |TELEFONE        |  |
                                       |EMAIL           |  |
          +-------------------+        |[ETC...]        |  |
          | ClienteContato    |        +----------------+  |
          +-------------------+                            |
  +------<|ID_CLIENTE     (PK)|                            |
  |       |ID_CONTATO     (PK)|>---------------------------+
  |       +-------------------+
  |
  |   +-------------------+
  |   | Cliente           |
  |   +-------------------+
  +--||ID_CLIENTE     (PK)|
      |NOME               |
      |ENDERECO           |
      |[ETC...]           |
      +-------------------+




Responder

Gostei + 0

17/01/2007

Aroldo Zanela

Colega,

Creio que o correto é criar uma tabela detalhe (contato) para cliente e outra (contato) para fornecedor, eis que não há relacionamento entre clientes e fornecedores (ao meu ver). Além do modelo ficar mais legível, pode-se definir a chave estrangeira corretamente no banco, bem como, economizar um byte para cada contato cadastrado. Já pensou que economia? :lol:


Responder

Gostei + 0

17/01/2007

Emerson Nascimento

passei o exemplo que eu uso aqui na empresa, pois temos contatos que podem atender aos dois casos, mas creio que a forma sugerida pelo Aroldo é melhor no seu caso, visto que não haverá um contato relacionado com cliente e fornecedor ao mesmo tempo.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar