Eu sou principalmente autodidata quando se trata de projetos de banco de dados. Estou fazendo essa pergunta porque me decidi por essa estrutura comum, mas estou me perguntando se é o método mais eficiente ou "padrão do setor".
A maioria dos bancos de dados que eu designo possui uma tabela de usuários e, em seguida, uma atividade de pessoas é rastreada em outra tabela. Entendo que a beleza do banco de dados é ter esse tipo de eficiência, mas a tabela de atividades reunirá muitos eventos rapidamente, apenas com todos os usuários que o utilizam regularmente, tornando-se uma tabela enorme rapidamente com o uso moderado do usuário. É uma prática recomendada apenas deixá-lo crescer dessa maneira? Ou existe uma camada de tabelas ou uma divisão em tabelas diferentes com base nas datas, na quantidade de usuários ou em alguma outra coisa?
+--------------------+ +------------------------+
| UserData | | Activity |
+-=------------------+ +------------------------+
| ID (auto uint) | <--1-to-many-+ | ID (auto uint) |
| UserName (text) | +--> | UserID (uint) |
| Email (text) | | Timestamp (time) |
| additional info... | | Type (ID to elsewhere) |
+--------------------+ | additional info... |
+------------------------+
Eu só gostaria de saber onde posso melhorar qualquer coisa, para me ajudar a aprender.