Uma pergunta sobre o armazenamento de dados que deveria ter sido na mesma tabela
-
23-08-2019 - |
Pergunta
O software que eu estou trabalhando com tem 2 tabelas, chumbo e cliente. Quando vendemos nosso produto para alguém, um registro é criado na tabela de clientes com os dados da tabela de chumbo (bem como alguns dados adicionais).
Atualmente não há nenhuma relação entre as duas tabelas. O melhor que existe agora é o objeto de chumbo tem uma função que irá fazer uma pesquisa na tabela de clientes para um registro com o mesmo número de telefone (na esperança de que ele não mudou nos últimos 5-10 anos que eles estiveram nossa cliente - fazendo pesquisa tal em cada chumbo produz um cruzamento% 82 na tabela de clientes). Não há pesquisa inversa (cliente-> chumbo).
O problema é que eu preciso saber o que registro do cliente é associado com o registro de cliente potencial, e vice-versa.
Eu considerei armazenar um fk de liderança no cliente e uma fk do cliente em chumbo ... mas o ORM eu estou usando transbordará como ele carrega registros associados quando existem fkeys.
A fusão das duas tabelas em uma tabela de 'pessoa' é o que eu gostaria de fazer, ter uma bandeira bits para identificar ou não uma pessoa é um cliente ... Mas, infelizmente, cronogramas e orçamentos não permitem.
Eu não sei bem o que fazer.
Solução
Você realmente precisa que ele vá ambas as direções (ou seja, 1: M leva a clientes e 1: clientes M de leads)? Se assim for, uma mesa composta de estar "entre" os dois poderia ser o caminho a percorrer. Cada registro deve conter o PK de cliente ea PK de chumbo (que liga os dois).
Se você só precisa saber quantas ligações estão ligadas a um cliente, gostaria de acrescentar o FK para leads (apontando para o PK em clientes).
Outras dicas
Você vai precisar da coluna ID em cada uma de suas duas tabelas para identificar exclusivamente seus registros (se você não tem ainda).
E você tem que adicionar uma ligação mesa mais (junção) para conectar tabelas existentes. Esta tabela conterá duas colunas: LeadID e CustomerID. Cada linha contém IDs de linhas correspondente no cliente e levar tabelas.
As chaves estrangeiras irá conectar suas tabelas: LeadID -> coluna ID na tabela de chumbo; Cliente -.> Coluna ID na tabela Customer