Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

Conception Le forum qui vous aide à résoudre vos questions relatives à la modélisation de votre base de données sous Access.

Réponse
 
Outils de la discussion
Vieux 01/08/2008, 16h39   #1 (permalink)
Membre régulier
 
Date d'inscription: septembre 2006
Messages: 126
Par défaut clé primaire et identifiant

Bonjour à tous, je suis en train de créer une base de données médicales, avec une table patients et une table médecins. Je souhaiterais attribuer un numéro d'identifiant pour chaque patient et pour chaque pro (un patient et un pro peuvent avoir le même numéro, aucune importance), et je me tâte sur le choix de cet identifiant :

- soit j'utilise la clé primaire de chaque table comme identifiant unique (cela est-il une bonne chose? j'ai lu que c'était mal, sans savoir réellement pourquoi )

- soit je crée carrément un autre champ pour le numéro d'identifiant, et j'attribue alors à ma sauce un numéro incrémenté ou alors randomisé.

D'après votre expérience, quelle solution vous semble la meilleure ?

merci!
Pierre
stagolee est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 17h20   #2 (permalink)
Rédacteur/Modérateur
 
Avatar de Demco
 
Date d'inscription: mai 2002
Localisation: Bordeaux / Lacanau-Océan, entre deux vagues
Âge: 27
Messages: 1 391
Par défaut

Citation:
- soit j'utilise la clé primaire de chaque table comme identifiant unique (cela est-il une bonne chose? j'ai lu que c'était mal, sans savoir réellement pourquoi )
Si l'identifiant en question est numérique ça ne déteriorera pas les performances de l'application.

Personnellement, j'utiliserais un champ clé primaire de type incrément automatique, et je créerais un autre champ identifiant avec UNIQUE à vrai. Comme ça ... si pour x raison tu dois modifier l'identifiant du patient à l'avenir tes données seront toujours cohérentes.

En espérant t'aider.
__________________
Modérateur Access & Web
Débogage des requêtes SQL écrites par VBA -- Vos cours Access -- Votre FAQ Access
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment.

*~* >>>>> A Lire Avant De Poster - Imperatif
Java User Group enfin sur Bordeaux. Inauguration le 9/10/08.
Demco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/08/2008, 13h02   #3 (permalink)
Membre régulier
 
Date d'inscription: septembre 2006
Messages: 126
Par défaut

Salut Demco, c'est en effet un raison valable pour créer un champ supplémentaire. Le champ d'identification sera numérique, donc pas de soucis.
Merci encore!
stagolee est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/08/2008, 17h01   #4 (permalink)
Membre Expert
 
Avatar de Danjos
 
Date d'inscription: août 2007
Localisation: Abidjan - Côte d'Ivoire
Messages: 1 029
Par défaut

Citation:
Envoyé par stagolee Voir le message
Bonjour à tous, je suis en train de créer une base de données médicales, avec une table patients et une table médecins. Je souhaiterais attribuer un numéro d'identifiant pour chaque patient et pour chaque pro (un patient et un pro peuvent avoir le même numéro, aucune importance),
Il y a à mon niveau, quelque chose qui ne semble pas très clair.
Le pro, est ce le mèdecin?
Dans tous les cas, je pense que tu peux faire une seule table, par exemple la table personne qui va contenir les deux catégories.
Et un champ en plus, qui te permettra de spécifier si la personne est Patient ou Medecin.
Dans une telle architecture, la gestion des clés devient plus simple. N'est ce pas?
__________________
Un gros problème est la somme de plusieurs petits problèmes.
Resolvez chacun des petits problèmes: vous aurez resolu le gros problème!
Danjos est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/08/2008, 17h06   #5 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

Citation:
Envoyé par Danjos Voir le message
spécifier si la personne est Patient ou Medecin.
Et quand le médecin tombe malade et se fait soigner par un confrère ?
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 10h32   #6 (permalink)
Membre Expert
 
Avatar de Danjos
 
Date d'inscription: août 2007
Localisation: Abidjan - Côte d'Ivoire
Messages: 1 029
Par défaut

Citation:
Envoyé par CinePhil Voir le message
Et quand le médecin tombe malade et se fait soigner par un confrère ?
ça ne complique pas. Mon architecture reste correcte même avec ce cas. On l'enregistre deux fois: une fois en tant que mèdecin, et l'autre en tant que patient.
En fait mon architecture résulte d'un MEA où Patient et Medecin sont des tables qui héritent de la table Personne. Mais, dans le MCD, les tables Medecin et Patient peuvent s'effacer pour ne laisser que la table Personne.
__________________
Un gros problème est la somme de plusieurs petits problèmes.
Resolvez chacun des petits problèmes: vous aurez resolu le gros problème!
Danjos est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide