Ajude-me a definir os relacionamentos de tabela para dados com várias estruturas. Preciso rastrear leads. Os leads vêm de várias fontes. Cada fonte de lead tem sua própria estrutura de dados. Preciso de conselhos representando isso em um banco de dados relacional.
Cada registro na TABELA "Lista de Produtos Vendidos" (definida abaixo) possui uma fonte de lead. Os leads podem vir de organizações, médicos, escritórios da empresa e funcionários da empresa. Aqui estão os diferentes tipos de dados que constituem um lead.
Organização da TABELA: - Nome -- TEXTO TABELA Médico: - NPI# -- INTEGER (exclusivo para cada médico. Planejei usar isso como chave primária) - Nome -- TEXTO - Sobrenome -- TEXTO TABELA Escritório da Empresa: - Localização -- TEXTO TABELA Funcionário da Empresa: - Departamento -- um dos {Vendas, Técnico, QA}. Observe que o funcionário não está vinculado a um escritório. Os leads do escritório são leads provenientes de diversos funcionários do escritório em vários locais. - Primeiro nome - Sobrenome Aqui está a lista de produtos vendidos da TABELA: - [campos diversos] - PrescritorMédicoNPI > muitos para um > Doutor.NPI -- "médico que receitou o produto para o paciente" - Representante de vendas > muitos para um > [Funcionário da empresa].PrimaryKey -- "Representante de vendas creditado pela venda. Necessário para cálculo de comissões" - LeadSource > ???
Informações diversas:
A empresa oferece incentivos para leads (comissão de afiliado) e incentivos para equipe de vendas (comissão de vendas). Os leads provenientes de organizações e escritórios de empresas não recebem comissão de afiliados. Estou pensando em fundir o TABLE Company Office na organização TABLE e usar "Office --" como os dados para rastrear diferentes escritórios (ou seja: Organization.Name = "Office -- Cincinnati"). Péssima ideia? Problemas?
Isso pode forçar algumas alterações em suas tabelas, mas fazemos algo assim no trabalho:
Certifique-se de que cada tabela tenha uma chave primária int/guid de algum tipo:
Tabela de organização
Em seguida, crie uma tabela de tipos para hospedar seus diferentes tipos de LeadSource:
Em seguida, na tabela ProductSoldList, adicione 2 colunas
LeadSourceID
eLeadSourceType
Então você pode facilmente consultar a
ProductSoldList
TABELA e saber a qual LeadSource juntar de volta: