2010-11-05 27 views
0

Je suis en train d'écrire mes premiers rails app & veulent entrer dans de bonnes habitudes dès le départ. Le tableau en question doit contenir des données sur les employés, l'un des champs étant l'ID du gestionnaire. Pour refléter la structure hiérarchique, je pense à utiliser acts_as_tree, donc le parent_id serait le champ id du manager (non?). Si nous devons utiliser (importer) des données de notre application RH existante - PeopleSoft - l'ID de l'employé est une chaîne. ID d'employé semble avoir le plus de sens en tant que PK (venant du point de vue des développeurs PeopleSoft, je me rends compte que je peux être partial et/ou ne pas voir toutes les possibilités). que l'une des philosophies derrière les rails est "convention sur la configuration", donc je voudrais utiliser les valeurs par défaut - le PK étant l'entier auto-incrémenté. Serait-il logique dans ce cas de créer une "table de recherche" ou quelque chose afin de maintenir l'utilisation/association de l'ID provenant de PS? Il y aura des rapports/exportations remontant dans le monde PS ....Id (entier auto-incrémenté) vs chaîne employé ID comme clé primaire - application rails

Merci

Répondre

0

Vous avez raison en ce que la convention Rails est d'utiliser l'auto-incrémentée par défaut id. Si vous avez une relation bi-univoque entre les personnes et les ID d'employé, l'ID d'employé doit simplement être un champ (colonne) sur votre modèle de personne. Faites-en une clé (mais pas une clé primaire) si vous allez faire beaucoup de recherches en l'utilisant.