Nous voyons les choses sous des perspectives différentes, et je pense que les deux camps sont identifiés par:
Singular ("utilisateur")
Personne qui établit une corrélation entre le nom de la table et le fait qu'il représente un conteneur pouvant contenir plusieurs lignes.
Donc, "conteneur utilisateur" peut contenir plusieurs lignes.
Pluriel ("utilisateurs")
Personne qui ne fait pas la corrélation entre le nom de la table et le fait qu'il représente un conteneur. Bien sûr, ils savent que c'est un conteneur, mais ce n'est pas dans le nom.
Par exemple,
une "boîte à oeufs" peut contenir plusieurs oeufs, mais cela est évident car la référence du conteneur est dans le nom, ce qui permet de créer plusieurs oeufs. Cependant, avec le nom singulier "utilisateur" de la table, la référence du conteneur n’est pas dans le nom. Par exemple, "user_container" serait probablement acceptable pour les personnes qui préfèrent les noms au pluriel.
Je pense que cela est également dû au fait que le pluriel est une pratique courante depuis des années et que la plupart des supports pédagogiques en ligne le permettent.
Cela dit, je pense que techniquement, le singulier est plus précis étant donné que nous nommons un seul conteneur et que les conteneurs peuvent contenir plusieurs lignes (ou une seule).
Les personnes semblent lier mentalement le lien entre le nom de la table et le contenu (plusieurs lignes nécessitent un nom au pluriel) plutôt que de lier mentalement le conteneur nommé au contenu (un conteneur en autorise plusieurs).
Comme toujours, il n’ya souvent ni bon ni mauvais, et c’est davantage ce qui convient au scénario et surtout la cohérence avec ce que vous choisissez.
Si vous ne faites que le projet et qu'il n'y a pas de vraie raison d'aller dans l'un ou l'autre sens, faites ce que vous estimez être le meilleur, ou juste la préférence. Appliquez la même chose dans une équipe de développement et prenez une décision unanime.