problème conception table (problème clé primaire)

problème conception table (problème clé primaire) - SQL/NoSQL - Programmation

Marsh Posté le 19-03-2006 à 22:11:03    

Bonjour à tous,
 
 
Je suis actuellement en stage et je dois crée une application qui gère des dossiers, mais j'ai un problème, je ne suis pas sur que je commence correctement ma base de donnée.
 
Voici le problème :
 
Chaque dossier a un numéro (qui s'incrémente normalement) , mais chaque année on dois recommencer la numérotation.
Donc je ne sais pas comment gérer ce problème, car je ne peux donc pas utiliser un champ auto_increment en clé primaire de la table dossier.
 
je pensais faire un champ de type char qui contiendra une valeur du type : date-numéro, mais alors là il deviens difficile de gérer les numéros, car :

 - Il faut a chaque fois vérifier l'année actuelle
 - décomposer le champ pour récupérer le dernier numéro

Est ce que cette méthode est bonne ou alors vous auriez une meilleure solution a proposé ?

Reply

Marsh Posté le 19-03-2006 à 22:11:03   

Reply

Marsh Posté le 20-03-2006 à 02:36:06    

voila une option :
id_dossier num_auto = la clé primaire, une clé artificielle.  
num_dossier num_auto recyclable a chaque année. elle forme avec la date du dossier ta clé naturelle.
 
PS : Assures-toi que le fait d'initialiser le numéro de dossier chaque année émane d'un besoin d'affaire ?  

Reply

Marsh Posté le 20-03-2006 à 08:24:46    

abdelelomari a écrit :

voila une option :
id_dossier num_auto = la clé primaire, une clé artificielle.  
num_dossier num_auto recyclable a chaque année. elle forme avec la date du dossier ta clé naturelle.
 
PS : Assures-toi que le fait d'initialiser le numéro de dossier chaque année émane d'un besoin d'affaire ?


 
Bonjour,
 
Tout d'abord, merci de ta réponse.
 
 
La remise a zéro du numéro du dossier est une contrainte  spécifié par le service en charge des dossiers, cela simplifie leur travail ( car les numéros deviennent vite important et il est difficile de s'y retrouver).
 

Citation :


id_dossier num_auto  
num_dossier num_auto


 
Je travaille avec Mysql et il n'est pas possible a ma connaissance d'avoir 2 auto_increment dans la même table.
Mais je peux me tromper , je vais vérifier cela.
 
Si on recycle le numéro de dossier , on va alors perdre les dossiers de l'année précédente , non ?

Reply

Marsh Posté le 20-03-2006 à 16:32:00    

Je ne connais pas MySQL, je connais plutot oracle ( On utilisera une sequence ).
 
As tu une date dans ta table ? si oui qu'elle est sa définition ?
 

Reply

Marsh Posté le 20-03-2006 à 17:55:53    

abdelelomari a écrit :

Je ne connais pas MySQL, je connais plutot oracle ( On utilisera une sequence ).
 
As tu une date dans ta table ? si oui qu'elle est sa définition ?


 
oui j'ai la date d'enregistrement du dossier au format date de mysql : YYYY-MM-JJ
 
 
je pensais a une autre solution mais je n'ai jamais essayé les clé primaire "composé" :
une clé primaire "composé" consituée  :
 - d'un numDossier int (sans auto increment)
- d'un champ de type YEAR(YYYY) que je rajouterais à la table
 
 
Cette solution ma l'air un peu plus facile que d'avoir un seul champ du type Année-NumDossier


Message édité par olwins le 20-03-2006 à 18:06:40
Reply

Marsh Posté le 20-03-2006 à 19:52:55    

Effectivement c'est plus logique de créer une clé composé de deux colonnes qu'une colonne composée de deux valeurs.

Reply

Marsh Posté le 20-03-2006 à 23:51:55    

Bonsoir,
 
je pars sur cette idée ,on verra bien.
 
Merci pour ton aide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed