Database
 sql >> Base de Dados >  >> RDS >> Database

Modelos de banco de dados para comércio eletrônico Parte 1:o boletim informativo




Em geral, as pessoas não gostam de receber e-mails não solicitados. No entanto, por vezes subscrevem newsletters para obter um desconto ou para se manterem a par de novos produtos. Este artigo apresentará uma abordagem para projetar um banco de dados de boletim informativo.

Por que se preocupar com e-mails de boletins informativos?


Os assinantes do boletim informativo representam um grupo de clientes extremamente valioso – eles estão interessados ​​em nossos produtos, confiam em nós e passam tempo analisando nossas ofertas e promoções. Além disso, enviar e-mails para clientes é uma das ferramentas mais baratas do marketing online. No entanto, isso precisa ser feito com cuidado – os dados devem ser atualizados diariamente (porque as pessoas se inscrevem e cancelam a inscrição) e de alta qualidade (não queremos enviar e-mails indesejados, pois isso impacta negativamente na imagem da marca).

Então surge a questão de como gerenciar esse processo de obter dados de qualidade e atualizá-los diariamente. Há muitas opções ...

E o vencedor é...


Análise de clientes! Hoje em dia, o fator mais importante para se manter à frente da concorrência é encontrar insights de dados e tomar decisões de negócios com base nisso. Não seria ótimo examinar o histórico de envios de newsletters e analisar sua intensidade e eficácia? Para cada cliente? E então juntá-los aos dados de compra, descobrir os interesses do cliente, preparar recomendações individuais e enviá-las usando e-mails personalizados?

Tal abordagem certamente aumentaria nossa taxa de conversão (CR). A taxa de conversão é um dos indicadores-chave de desempenho de marketing online mais importantes; mostra quantas pessoas fazem uma compra depois de ver alguns de nossos materiais promocionais (anúncios, newsletters, etc). Um CR alto significa maior eficácia nos negócios.

Agora que entendemos um pouco do marketing envolvido, vamos ao modelo de dados!

Vamos começar a modelar um banco de dados de boletins informativos!


Aprofundando, vemos que as duas tabelas principais no modelo são o client e newsletter mesas.



Como estaremos interessados ​​principalmente na análise de clientes, o client mesa deve ficar no centro do modelo. Nesta tabela, cada cliente tem seu próprio id exclusivo . Também armazenaremos informações como o first_name do cliente e last_name , informações de contato (email , phone_number , endereço), birthday , create_date (quando o registro do cliente foi inserido no banco de dados) e seu source_id – ou seja, se eles se registraram em nosso site ou algum parceiro de negócios nos forneceu seus dados.

O newsletter table armazena dados relativos a cada criação de newsletter. Os boletins informativos podem ser identificados com base em seu id exclusivo . Cada um é descrito por um name (por exemplo, “Nova coleção de roupas femininas – Outono 2016”), e-mail subject (“As roupas mais elegantes para ela – compre agora!”), html_file (o arquivo que contém o código HTML para aquele boletim informativo específico), boletim type (por exemplo, "nova coleção", "newsletter de aniversário") e o create_date .

Consentimentos de marketing


Para enviar informações de marketing (por correio, telefone, e-mail ou SMS), uma empresa precisa obter o consentimento de seus clientes. Em nosso modelo, os consentimentos são armazenados em uma tabela separada chamada marketing_consent . Ele mantém informações sobre o conjunto atual de consentimentos de marketing para todos os nossos clientes. Os consentimentos são codificados como variáveis ​​booleanas – TRUE (concorda com a comunicação de marketing) ou FALSE (não concorda).



É muito importante armazenar informações sobre quando um cliente concordou em receber anúncios em cada canal de comunicação. Também é benéfico registrar quando eles retiraram seu consentimento para cada canal. Para tais fins, o consent_change mesa foi projetada.



Cada alteração tem um id exclusivo e é atribuído a um cliente específico por seu client_id . Quando um cliente solicita ser removido dos e-mails de newsletter, o boletim id do channel tabela também será armazenada no consent_change channel_id da tabela atributo. O new_consent atributo é um valor booleano (VERDADEIRO ou FALSO) e representa novos consentimentos de marketing.

O update_date A coluna contém a data em que um cliente solicitou uma alteração. Essa estrutura nos permite extrair um conjunto de consentimentos para todos os clientes em um determinado dia. É extremamente útil se um cliente reclamar de ter recebido um e-mail depois de já ter cancelado a assinatura do nosso boletim informativo. Com essas informações arquivadas, podemos verificar quando ocorreu o cancelamento da inscrição e, esperamos, confirmar que isso foi feito após o envio do boletim informativo por e-mail.

Manter os envios em ordem


Projetar um modelo de banco de dados perfeito para envio de newsletter não é fácil. Por quê? Bem, obviamente, precisamos ser capazes de identificar qualquer criação de newsletter (ou seja, layout, gráficos, produtos, links, etc). Também sabemos que uma criação pode ser enviada várias vezes:os gerentes podem decidir que um pacote de e-mails será enviado pela manhã para metade dos clientes e à noite para a outra metade. Portanto, é crucial registrar quais clientes receberam qual newsletter e quando. É por isso que esta parte do modelo consiste em três tabelas:
  • O newsletter tabela – que descrevemos anteriormente.
  • O newsletter_sendout tabela – que identifica um único envio. Por exemplo, o boletim de Natal (id ="2512") foi enviado por e-mail no dia 10 de dezembro às 18h. Essa manutenção de registros permite que os profissionais de marketing enviem o mesmo boletim informativo para grupos separados de clientes em momentos diferentes.
  • Os sendout_receivers table – que coleta dados sobre os destinatários de cada envio. Haverá um registro para cada e-mail de cada envio. Cada linha tem três colunas:id (identificando o evento de envio de um e-mail para um cliente), client_id (identificando clientes de nosso banco de dados) e nl_sendout_id (identificando um envio de boletim informativo).

Aqui está o modelo completo de boletim informativo:




Alguma ideia sobre como melhorar este modelo?


Uma maneira possível é adicionar uma response tabela. Isso armazenaria as reações dos clientes – se eles abriram o e-mail, clicaram no anúncio ou nunca viram a mensagem porque foi marcada como spam. Onde devemos adicionar a response tabela ao nosso modelo e qual relação deve ser aplicada? Compartilhe seus pensamentos na seção de comentários abaixo.