N'utilisez pas de mots réservés ou de mots entre guillemets ou échappés pour les noms des tables de la base de données.
Si vous voulez vraiment faire cela, vous devez échapper les noms :
- guillemets : "
user"
- Échappement Java + JPA :
@Table(name = "\"user\"")
Je ne recommande pas du tout l'utilisation de mondes pluriels pour les noms de tables de base de données comme USERS
. Il s'agit d'une MAUVAISE PRATIQUE, contraire à la convention de dénomination SQL. Les noms des tables de la base de données doivent être des noms singuliers.
Je recommande d'utiliser ACTOR
pour un nom de table de base de données pour stocker les détails des utilisateurs. Ce nom est clair, compréhensible et suffisamment général. Il peut être utilisé aussi bien pour les entreprises que pour les particuliers (pas comme ex. PERSON
qui ne convient qu'aux personnes, mais pas aux entreprises).
0 votes
La cohérence peut être tout aussi importante que la politique elle-même.
1 votes
J'utilise une table nommée USER dans mysql avec ORM. Pourquoi dites-vous que c'est un mot-clé réservé ?
7 votes
Adil Mehmood, "user" n'est pas un mot réservé dans MySQL mais il l'est dans d'autres RDMS tels que MS SQL Server.
0 votes
Il est également réservé dans PostgreSQL, mais peut être utilisé s'il est cité : select * from "user" ;
2 votes
J'ajouterai que je pense que c'est également une bonne pratique d'utiliser des noms de tables et de champs qui pourraient être transférés vers un autre SGBDR sans craindre de rencontrer des erreurs dues à l'utilisation de mots réservés.
0 votes
En revanche, le fait de préfixer vos tables par un code de système ou d'application permet à plusieurs systèmes de partager un schéma ou une base de données.
0 votes
@Gilbert, je pense effectivement que préfixer une table avec un "nom de domaine" (nom ou code de l'application, pas un nom de domaine web) n'est pas une mauvaise idée et est différent du préfixe d'objet auquel je faisais référence.