Mon application permet aux utilisateurs d'envoyer des fichiers les uns aux autres. Les utilisateurs réguliers peuvent modifier leurs contacts, changer le mot de passe, etc. En outre, les utilisateurs administrateurs peuvent ajouter/supprimer des utilisateurs et afficher le journal de ce qui s'est passé. Ma question est de savoir comment stocker ce journal dans la base de données MySQL?Comment enregistrer une base de données?
Je pensais que pour stocker le journal comme celui-ci:
log_id time user_id action_type description
------ ---- ------- ---------------- ----------------------------------------
1 .... 4 User added Added new user: alex
2 .... 1 Contact added Added contact Paul to group Family
3 .... 1 User removed Removed user: gabrielle
4 .... 3 Files sent Sent files 3,5,7,14 to contacts 2,4,8
5 .... 8 Group added Added new group: Family
6 .... 8 Password changed
7 .... 8 First Name changed Changed First Name from Michael to Misha
Quel type serait le meilleur pour action_type
? Puisque de nouvelles action_type
s pourraient être ajoutées à l'avenir, je pensais que ENUM
ne serait pas un bon choix. J'ai donc pensé à le faire VARCHAR(..)
, comme description
.
Est-ce que cela semble raisonnable?
Je serai heureux d'entendre des commentaires/suggestions.
énerve: Appelez votre clé primaire 'id' au lieu de' log_id'. Vous évitez les répétitions moche: 'logs.log_id' – meagar
@meagar - Il n'y a rien de mal à utiliser log_id, et c'est un schéma de nommage recommandé. Il s'assure que les noms de colonnes ne se chevauchent pas lors des jointures sans avoir à taper une longue liste d'alias. – mellowsoon
@mellowsoon C'est pourquoi j'ai dit "bête noire" et non "tu te trompes". – meagar