J'ai récemment dû utiliser une application dans laquelle la plupart des tables ne se référencent pas l'une l'autre via des clés primaires, mais s'appuient plutôt sur des champs synthétiques supplémentaires. Par exemple, disons qu'il y a des tables Person (id, name, token) et Pet (id, name, personToken). Une personne peut avoir beaucoup d'animaux domestiques. Pet.personToken serait une clé étrangère référençant Person.token. Maintenant, si je créais le schéma, j'utiliserais simplement Person.id pour référencer les enregistrements dans celui-ci. On m'a dit que l'application utilise des colonnes "token" pour faciliter la migration des données entre différents serveurs.Utilisation de champs synthétiques supplémentaires à la place des clés primaires pour référencer des tables
Ma question est, est-ce quelque chose assez commun ou est-ce simplement un design bizarre?
Quel est le type de données des clés primaires, c'est-à-dire 'id' et comment se compare-t-il au type de données' tokens'? En outre, quelle est la logique pour générer 'id' contre les' tokens 'correspondants? – InSane
Les ID sont généralement des entiers auto-incrémentés. Les jetons sont souvent des chaînes entrées manuellement par l'utilisateur quelque part. –