Mes critères pour Oracle sont :
- Les mots clés sont toujours en MAJUSCULES ;
- Les noms des objets de la base de données sont toujours en minuscules ;
- Les underscores remplaceront les espaces (c'est-à-dire qu'il n'y aura pas de conventions de casse de type "camel" qui sont courantes sur, par exemple, SQL Server) ;
- Les clés primaires seront presque toujours nommées "id" ;
- L'intégrité référentielle sera respectée ;
- Les valeurs entières (y compris les identifiants de table) seront généralement toujours NUMBER(19,0). La raison en est que cela correspond à un nombre entier signé de 64 bits, ce qui permet d'utiliser le type Java long au lieu du BigInteger, plus gênant ;
- Malgré l'erreur d'appellation consistant à ajouter "_number" à certains noms de colonnes, le type de ces colonnes sera VARCHAR2 et non un type numérique. Les types de nombres sont réservés aux clés primaires et aux colonnes sur lesquelles vous effectuez des opérations arithmétiques ;
- J'utilise toujours une clé primaire technique
- Chaque table aura sa propre séquence pour la génération des clés. Le nom de cette séquence sera _seq.
Avec SQL Server, la seule modification consiste à utiliser la casse pour les noms d'objets de la base de données (c'est-à-dire PartyName au lieu de party_name).
Les requêtes ont tendance à être écrites sur plusieurs lignes, avec une clause ou une condition par ligne :
SELECT field1, field2, field2
FROM tablename t1
JOIN tablename2 t2 ON t1.id = t2.tablename_id
WHERE t1.field1 = 'blah'
AND t2.field2 = 'foo'
Si la clause SELECT est suffisamment longue, je la diviserai en un champ par ligne.