Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2006, 22h10   #1
Membre habitué
 
Inscription : février 2005
Messages : 186
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 186
Points : 114
Points : 114
Par défaut Gestion Electronique de Documents

Bonjour,

J'espère que je poste sur le bon forum, sinon, n'hésitez pas à le déplacer.

J'aimerais faire une base de données pour assurer le suivi et la diffusion de plans. Etant autodidacte et un peu débutant dans le domaine des bases de données, j'aimerais avoir votre avis sur la solution que j'ai retenue, pour être sûr de ne pas faire fausse route.

Tout d'abord, le logiciel:
J'ai choisi Access. D'abord, parce que je n'ai que ce système à ma disposition au boulot et à la maison. Il y a un ans, quand j'ai commencé à réfléchir sur la gestion des plans, Access+VBA m'a semblé le plus facile pour m'initier aux bases de données (je bosse chez moi "pour ma culture personnelle" en prenant comme exemples pratiques des solutions appliquables pour mon travail !). De plus, Access me semble convenir pour le nombre d'utilisateurs potentiels: une quinzaine de personnes (écriture et lecture) plus une quinzaine de consultants (lecture).
Les tables seront sur le serveur de l'entreprise, le fichier mbd contenant les tables liées, formulaires, code VBA et requêtes sera copié du serveur vers les postes des utilisateurs en local.

Ensuite, l'organisation et la liaison entre les tables:

Un plan = un document
Un plan possède (je zappe sur ses autres "attributs" qui sont moins importants):
- un numéro
- un titre
- un indice: de 0 (zéro), A, B, C jusqu'à Z. Cet indice évolue tout au long de la vie d'un document.

Diffusion du document:
Un plan indicé est diffusé à une ou plusieurs personnes



Je pense organiser la base comme suit:

table Clients (table externe, l'annuaire des personnes filtrées par affaire):
tabClients
-*idClient (clé primaire)
-NomClient
-PrenomClient
-TelClient
etc.

table définissant le document:
tabDefDoc
*idDoc (clé primaire)
-#refIdClient (référence à l'auteur du plan)
NoDoc (numéro du document)
NomDoc (Titre du document)
etc.

table définissant les indices:
tabInd
-*idInd (clé primaire)
-Indice (Indice: 0,A,B jusqu'à Z)

table définissant le document d'une façon unique=document avec son indice:
TabGestDoc
-*idDocUnique (clé primaire)
-#refIdDoc (référence au document "primaire")
-#refIdInd (référence à l'indice)
-#refIdClient (référence à l'auteur de la modif)
-DateIndice (Date de la modif)
etc.

table définissant les diffusions aux personnes:
tabDiffusions
-*idDiffusion (clé primaire)
-#refIdDocUnique (référence au document "unique", c'est à dire, le plan indicé qui est considéré comme un objet unique)
-#refIdClient (référence à un enregistrement de la table client, personne à qui le plan a été diffusé).
-DateDiffusion
etc.

Une image valant mieux qu'un long discours, voici les relations entre mes tables:


Qu'en pensez vous ? Tous vos conseils et astuces sont les bienvenus.

kenavo,

Jean-Marc qui espère ne pas trop se planter dans sa réflexion...
OtObOx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2006, 17h05   #2
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut !

Tout d'abord, je ne connais pas Access. Je ne peux donc pas te conseiller sur ce choix là. Mais s'il t'est facile d'accès, pourquoi pas. Surtout qu'après, tu pourras réimplanter ta base de données sur un autre SGBD.

Alors mon avis sur la modélisation de ta base de données :

- Une table Client : Rien à dire là dessus.

- Une table Indice : Pourquoi pas. Certains SGBD offrent des types énumérés ou des domaines qui permettent de spécifier les valeurs possibles d'un champ. C'est peut-être mieux qu'une table. Ici, il faut surtout remarquer que tu définis un nouveau type, alors que le but d'une table est plutôt de regrouper des données.

- Une table Document : On dirait que tu as deux clés : idDoc et noDoc. Si le numéro d'un document est déjà unique, tu peux l'utiliser comme clé primaire. Mais si ce numéro de document est une chaîne de caractères alphanumériques éventuellement assez longue, il serait judicieux d'introduire un identifiant numérique (idDoc). Ca optimisera les liens de jointure.

- Une table Modifications (c'est à ça que sert ta table TabGestDoc ?) : rien à dire si ce n'est le vocabulaire utilisé. Si j'ai bien compris l'utilité de la table, "idDocUnique" est en fait un "identifiant de modification d'un document". L'identifiant unique d'un document est déjà dans la table des documents.

- Une table Diffusion : Je ne comprends pas pourquoi tu utilises "idDocUnique". Une diffusion concerne un document, autant prendre directement "idDoc". Ca te permettra de savoir rapidement quel document est concerné (sans réaliser de jointure).

Une question à se poser quand on modélise un problème d'organisation de données, c'est "Est-ce que j'arriverai à exprimer toutes mes requêtes ?". Par exemple, pour connaître l'état actuel d'un document, tu feras une requête sur la table Modification et tu prendras l'indice où la date de modification est la plus récente.

Mais peut-être tu auras aussi besoin de savoir quel client a réalisé la dernière modification avant une certaine diffusion. Et là, compare entre deux situations :

1) Tu as utilisé idDocUnique dans Diffusion pour faire référence au document distribué

2) Tu utilises idDoc dans Diffusion pour faire référence au document distribué

Normalement, tu dois voir facilement qu'il est beaucoup plus simple d'utilisé idDoc !

Bonne continuation. Et si je n'ai pas été clair pour quoi que ça soit, n'hésite pas
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 18h17   #3
Membre habitué
 
Inscription : février 2005
Messages : 186
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 186
Points : 114
Points : 114
Salut,

Merci de t'être penché sur ma question et d'avoir pris le temps d'y répondre

- La table "indice" est faite uniquement pour remplir les combo box plus facilement, et éviter que quelqu'un mette un "a" minuscule au lieu d'un "A" majuscule par exemple, mais peut être que ce n'est pas trop performant et qu'une solution "en dur" (dans les propriétés de la combo box par exemple) serait mieux ?

- La table "Document". Le IdDoc est là effectivement parce qu'un numéro de document peut être de type alphanumérique.

- La table Gestion des documents: Tu as raison, elle devrait s'appeller Modification, c'est plus judicieux. La clé IdDocUnique est là effectivement pour identifier la modif d'une façon unique: tel que je vois le truc, un document à l'indice A n'est pas le même document à l'indice B ce qui donne deux objets uniques et différents. Est ce que je me trompe ?

- La table diffusion: Je ne comprends pas trop ce que tu veux dire quand tu écris:
Citation:
Je ne comprends pas pourquoi tu utilises "idDocUnique". Une diffusion concerne un document, autant prendre directement "idDoc".
Pour moi, c'est le document unique tel que défini dans mon paragraphe précédent qui est diffusé, pas le document "générique" qui peut prendre n'importe quel indice...
Mais ta remarque "Est-ce que j'arriverai à exprimer toutes mes requêtes ?" (que je ne connaissais pas et qui me semble très utile ! merci pour le tuyau) me fait m'interroger sur la suite !
Je vais analyser les 2 cas que tu donnes à la fin de ton message pour comprendre l'intérêt d'utiliser le "IdDoc" pluto que le "IdDocUnique".
Mais cela me semble plus dur pour "regrouper" les documents ayant le même numéro de plan avec des indices différents. Je vais voir...

En tout cas, merci pour ton aide !

kenavo,

Jean-Marc
OtObOx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h13.


 
 
 
 
Partenaires

Hébergement Web