Mysql
 sql >> Base de données >  >> RDS >> Mysql

Base de données - Conception d'une table d'événements

Je recommande fortement cette approche. Étant donné que vous utilisez probablement la même base de données pour OLTP et OLAP, vous pouvez obtenir des avantages significatifs en termes de performances en ajoutant des étoiles et des flocons de neige.

J'ai une application de réseautage social qui compte actuellement 65 tables. Je maintiens un seul tableau pour suivre les vues d'objets (blog/post, forum/thread, galerie/album/image, etc.), un autre pour les recommandations d'objets et un troisième tableau pour résumer l'activité d'insertion/mise à jour dans une douzaine d'autres tableaux.

Une chose que je fais légèrement différemment est de maintenir une table entity_type et d'utiliser son ID dans la colonne object_type (dans votre cas, la colonne 'TABLE'). Vous voudriez faire la même chose avec une table event_type.

Clarification pour Alix - Oui, vous maintenez une table de référence pour les objets et une table de référence pour les événements (il s'agirait de vos tables de dimension). Votre table de faits aurait les champs suivants :

id
object_id
event_id
event_time
ip_address