Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Banco de dados - Projetando uma tabela de eventos


Eu recomendo esta abordagem. Como você provavelmente está usando o mesmo banco de dados para OLTP e OLAP, você pode obter benefícios significativos de desempenho adicionando algumas estrelas e flocos de neve.

Eu tenho um aplicativo de rede social que está atualmente em 65 mesas. Eu mantenho uma única tabela para rastrear visualizações de objetos (blog/post, fórum/thread, galeria/álbum/imagem, etc), outra para recomendações de objetos e uma terceira tabela para resumir a atividade de inserção/atualização em uma dúzia de outras tabelas.

Uma coisa que faço um pouco diferente é manter uma tabela entity_type e usar seu ID na coluna object_type (no seu caso, a coluna 'TABLE'). Você gostaria de fazer a mesma coisa com uma tabela event_type.

Esclarecimento para Alix - Sim, você mantém uma tabela de referência para objetos e uma tabela de referência para eventos (essas seriam suas tabelas de dimensão). Sua tabela de fatos teria os seguintes campos:
id
object_id
event_id
event_time
ip_address