Bonjour,

Voici une petite question d'ordre théorique.
En essayant de prendre en main Symfony, je constate que c'est un outil très souple qui permet souvent de modifier le comportement par défaut tout en gardant la puissance du framework (en surchargeant les bonnes classes d'objet, par exemple).
Sauf dans un cas (du moins n'ai-je trouvé aucun moyen pour le faire) :

Si les clés primaires ne sont pas définies comme des entiers auto incrémentés, il est nécessaire de faire appel à tout un tas de bidouilles peu élégantes pour utiliser l'admin generator.
Vu les problèmes posés, j'en déduis qu'il s'agit là d'un point important de la philosophie de symfony.

Ma question est donc la suivante :
Comment se justifie le fait que les clés primaires DOIVENT être des entiers auto-incrémentés.

Dans le cas d'une base que j'ai développé (avant d'essayer d'utiliser symfony), j'ai choisi (après réflexion) de définir mes PK avec des identifiants sémantiques. J'ai choisi cette option parce qu'il s'agit réellement d'identifiants et que je devrais de toute façon définir des indexes uniques sur ces champs.

Comme ce sont des identifiants partout ailleurs dans le Système d'information, ils ne risquent pas de changer trop souvent (et, de toute façon, cela reste faisable sans trop s'arracher les cheveux).
Par contre, pour interpréter le résultat de nombreuses requêtes, cela impose un niveau de jointure supplémentaire bien inutile pour récupérer le code qui n'est plus dans les FK. J'ai fréquemment des requêtes sur 3-4 tables et je trouve inutile d'en ajouter 3 ou 4 de plus pour accéder aux codes qui définissent les PK.

Comme en plus j'interroge beaucoup cette base en dehors de toute interface, j'apprécie d'avoir des requêtes assez rapides à taper.
Je trouve que dans ce cas, les inconvénients d'une PK sans sémantique sont nettement plus importants que ses avantages et il me semble étrange qu'un outil tel que symfony ne l'ait pas pris en compte.
J'ai du mal à imaginer que mettre un paramètre là-dessus soit d'un niveau de complexité tel que l'équipe de Symfony ne réussisse pas à le faire.

Merci d'avance à ceux qui pourront m'éclairer.