Je suis surtout un autodidacte en matière de conception de bases de données. Je pose cette question parce que je me suis fixé sur cette structure commune, mais je me demande si c'est la méthode la plus efficace ou «standard de l'industrie».
La plupart des bases de données que je conçois ont une table utilisateur, puis une activité de personne est suivie dans une autre table. Je comprends que la beauté de la base de données est d'avoir ce genre d'efficacité, mais la table d'activités rassemblera de nombreux événements assez rapidement, juste de chaque utilisateur l'utilisant régulièrement, devenant ainsi une énorme table assez rapidement avec une utilisation modérée de l'utilisateur. Est-ce la meilleure pratique de simplement la laisser grandir de cette façon? Ou est-ce un niveau de tables, ou une répartition en différentes tables en fonction des dates, ou par nombre d'utilisateurs, ou autre chose?
+--------------------+ +------------------------+
| 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... |
+------------------------+
Je voudrais juste savoir où je peux améliorer quoi que ce soit, pour m'aider à apprendre.
la source
Vous avez fait une très bonne observation. La table d' activité va grandir rapidement et grand. Ce que j'ai fait dans le passé, c'est archiver les données plus anciennes (disons plus de 14 jours) dans une table ActivityHistory . Cela permet de conserver la table Activity à une taille gérable et si vous avez besoin de faire des recherches, vous pouvez toujours consulter la table ActivityHistory .
la source