Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
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/01/2011, 19h30   #1
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Par défaut Plusieurs tables ou une seule ?

Salut

je suis indécis sur la conception de quelques tables : il s'agit de "sites" bâtiments ou voiries ou ouvrages maritimes ou sites de transport, etc...

Ces sites seront concernés par des devis, bons de commande, marchés, factures...

Par ailleurs ces sites sont déjà présents dans une application chargée de gérer les interventions et de détailler les niveaux d'équipements (ascenseurs, accessibilité, DPE, ....) Dans cette appli, ils sont dans des tables différentes (batiments, voiries...)

Dans l'appli compta, je me demande s'il est préférable de les réunir dans une seule table ou de les conserver également dans diverses tables.

Merci de vos lumières
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2011, 21h12   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Minot83,

Eh bien, cela dépend de la liste des champs pour chacune de ces entités : si elles comportent exactement les mêmes champs, il est plus judicieux de ne créer qu'une seule table avec un champ qui spécifie le type de site. Soit, par exemple :

Table Sites :
- Id_Site (clé primaire, numéro auto)
- Id_TypeSite
...

Table TypesSite :
- Id_TypeSite (clé primaire, numéro auto)
- Libelle (bâtiments, voiries, ouvrages maritimes, sites de transport, etc...)

Relations :
TypesSite 1----n Sites, via Id_TypeSite.


La question ne se pose même pas la liste des champs nécessaires est différente.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 11h15   #3
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Bonjour Richard_35

Merci pour ta réponse.

En fait, la liste des champs est différente au sein de l'application "technique" et ne comporterait que 3 champs identiques au sein de l'appli "comptable".
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 11h48   #4
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
Bonjour,

Une structure à héritage me semble adaptée à la situation:

Site-1--------1-Batiment
Site-1--------1-Voirie
Site-1--------1-OuvrageMaritime
Etc…

Selon la règle de gestion :
Un site est soit un bâtiment, soit une voirie, soit un ouvrage maritime etc.

Dans la table générique Site, tu mets les propriétés communes à tout type de site (Nom du site, adresse du site,…).

Voir Héritage dans une base de données Access
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 15h29   #5
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Bonjour f-leb et merci,

je ne suis pas sûr d'avoir compris...

j'aurais donc :

dans ma dorsale "gestion technique"
- T_batiment(Id, Lb, Surface, ascenseur, volume, chauffage....)
- T_voirie(Id, Lb, longueur, accotements, revetement, etat....)
...

dans ma dorsale "gestion financière"
- T_Sites(Id, Lb, type(bat ou voirie))

Et T_Sites est l'addition de T_batiments et de T_voiries.
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 16h40   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Minot83 et F-leb,

Citation:
dans ma dorsale "gestion technique"
- T_batiment(Id, Lb, Surface, ascenseur, volume, chauffage....)
- T_voirie(Id, Lb, longueur, accotements, revetement, etat....)...
==> à la vue des tables existantes, deux autres solutions, à ajouter à celle de F-leb (que je salue, "au passage"...) :

  1. Ajouter tes champs "comptables" dans les tables existantes (mais, peut-être, ne le peux-tu pas) ;


  2. Adapter la première proposition de la manière suivante :
Table Sites :
- Id_Site (Id de T_batiment ou de T_voirie ou etc... )
- Id_TypeSite (type de site, donc la table d'où provient l'Id_Site)
- ChampComptable1
- ChampComptable2
...
==> ATTENTION : la clé primaire doit être le couple Id_Site/Id_TypeSite.

Table TypesSite :
- Id_TypeSite (clé primaire, numéro auto)
- Libelle (T_batiment, T_voirie, etc...)

Relation :
TypesSite 1----n Sites, via Id_TypeSite.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 18h10   #7
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Tout-à-fait d'accord avec ceci Richard.

La question c'est est-ce réellement mieux de gérer les sites dans une seule table au sein de l'appli "compta" ou dans plusieurs?

Les sites seront successivement concernés par des bons de commande, factures...

Sera-ce indispensable? pour réaliser des états ou formulaires?

Et pour les mises à jour?
Si je créé des sites du côté "compta" ou du côté "technique" je vais me retrouver avec des id identiques à tort.

minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 21h22   #8
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
re,

Citation:
Qu'est-ce que la réplication?
La réplication de bases de données est une technique qui crée un ensemble de copies de la base de données et de ses données et qui les maintient synchronisées. Ces différentes copies peuvent être utilisées par différents utilisateurs, peuvent être situées sur des ordinateurs distincts; il n'est pas nécessaire que ces copies soient toujours connectées entre elles...
c'est ce genre de techniques que tu recherches ?
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 21h49   #9
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Citation:
Envoyé par f-leb Voir le message
re,
c'est ce genre de techniques que tu recherches ?
Re, disons qu'entre plusieurs applications, certaines tables sont communes.
Je me suis demandé s'il était mieux de créer une dorsale "commune" afin d'y gérer les tables liées avec les autres dorsale. Mais non car je perds l'intégrité référentielle.

Par conséquent, je réfléchis sur comment telle base fera "profiter" à telle autre base, de ses tables, mais en pouvant d'un côté comme de l'autre, modifier les données.

Et de plus ces tables n'ont pas la même utilité d'un côté et de l'autre, c'est pour cela que je souhaitais fusionner en sites les différents domaines (voiries, bâtiments....)
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 21h58   #10
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
j'essaye de comprendre le besoin...

Pourquoi ne pas choisir UNE seule dorsale avec toutes tes tables reliées par l'intégrité référentielle et DEUX frontales (compta, technique) ?
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 22h20   #11
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Citation:
Envoyé par f-leb Voir le message
j'essaye de comprendre le besoin...

Pourquoi ne pas choisir UNE seule dorsale avec toutes tes tables reliées par l'intégrité référentielle et DEUX frontales (compta, technique) ?
Pour éviter que le nombre d'utilisateurs simultanés soit trop élevé.

En gros je suis à 10 utilisateurs par base en permanence, si je réunis tout, je passe à 30.
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 14h31   #12
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour à tous,

Il me semble que tu as plusieurs solutions à adapter à ton besoin : pour cela, il faut rentrer, réellement, dans le détail, ce que, toi seul peut faire, dans l'état actuel des choses.

Néanmoins, certains de tes propos me rendent perplexe, par exemple :
Citation:
Si je créé des sites du côté "compta" ou du côté "technique" je vais me retrouver avec des id identiques à tort.
==> c'est ton processus qui remplira correctement les Id. C'est pour cela que Id_Site (Id de T_batiment ou de T_voirie ou etc...) n'est plus en numéro automatique.


Citation:
Ajouter tes champs "comptables" dans les tables existantes (mais, peut-être, ne le peux-tu pas)
==> le peux-tu ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 16h30   #13
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Citation:
Envoyé par Richard_35 Voir le message
Bonjour à tous,
Il me semble que tu as plusieurs solutions à adapter à ton besoin : pour cela, il faut rentrer, réellement, dans le détail, ce que, toi seul peut faire, dans l'état actuel des choses.

==> c'est ton processus qui remplira correctement les Id. C'est pour cela que Id_Site (Id de T_batiment ou de T_voirie ou etc...) n'est plus en numéro automatique.
Oui je saisis bien, mais c'est là que je parviens pas encore à me décider. Si je conserve chaque type de site dans une table différente, quel sera l'impact ou la difficulté d'exploitation ultérieure? En fait je n'en vois pas particulièrement, si ce n'est des requêtes un peu plus lourdes...
Par ex : lister toutes les factures sur une commune, dans l'ordre chronologique.
On aura la T_fact, les T_bat, T_voirie, T_ouvrages_maritimes, T_ouvrages_montagne ainsi que la T_Commune.

Si je regroupe, je n'aurais que
T_fact, la T_sites ainsi que la T_Commune.


==> le peux-tu ?
Je n'y ai pas vraiment d'intérêt, je pense, vu que je vais gérer les "actions" comptables principalement dans des tables intermédiaires entre les sites et les factures par exemple. Sachant qu'une facture peut concerner plusieurs sites. Et qu'un site est forcément concerné par n factures.
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 16h46   #14
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Citation:
Je n'y ai pas vraiment d'intérêt .../...
==> eh bien, l'intérêt, c'est que, au lieu d'avoir des relations 1 pour 1 (qui, en fait, désigne la continuité d'un même enregistrement), tu as tout dans la même table.


Citation:
Sachant qu'une facture peut concerner plusieurs sites. Et qu'un site est forcément concerné par n factures.
==> ce sera pareil avec tes tables intermédiaires avec les relations 1 pour 1.


Citation:
Par ex : lister toutes les factures sur une commune, dans l'ordre chronologique.
On aura la T_fact, les T_bat, T_voirie, T_ouvrages_maritimes, T_ouvrages_montagne ainsi que la T_Commune.
==> si tu prends la solution de la table unique (post #6), tu n'auras qu'une seule table "comptable". Mais, de toutes manières, si tu as besoin, pour une raison ou pour une autre, d'aller chercher des informations dans la table "non comptable", tu seras obligé de distinguer ces différentes tables "non comptable".
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 18h21   #15
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Richard, je ne vois pas comment je pourrais contenir plusieurs factures dans une table site?

Fact 1------n Fact-Site n------1 Site
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 18h57   #16
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Allez je mets ça en image

http://hpics.li/d647c54
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 11h47   #17
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour à tous,

Excuses-moi, mais il y a deux choses différentes :
- une table unique ou plusieurs tables ?
- comment facturer ?

L'une est liée à l'autre, bien sûr. Mais, il y a une partie "analytique" (structure des tables) et une partie "processus" (formulaires). Si ce que tu appelais "les champs comptables" sont, en fait, les champs de facturation, alors il me semble qu'il y a erreur sur la dénomination.

J'avais compris, et sans doute mal compris, que les "les champs comptables" pourrait être, entres autres, le compte comptable associé au site.

La solution que je t'avais suggérée est donc le choix 2 de ton schéma, soit :
T_Sites :
- Id_Site (Id de T_batiment ou de T_voirie ou etc... )
- Id_TypeSite (type de site, donc la table d'où provient l'Id_Site)
==> ATTENTION : la clé primaire doit être le couple Id_Site/Id_TypeSite ;
==> que représente le champ Lb_site (j'espère que ce n'est pas le nom du site que tu veux recopier...).

Table TypesSite (manquante dans le schéma) :
- Id_TypeSite (clé primaire, numéro auto)
- Libelle (T_batiment, T_voirie, etc...)

Relation :
TypesSite 1----n Sites, via Id_TypeSite.

Voilà pour la partie "analytique" qui me semble pertinente (mais je peux me tromper).


Pour la partie "processus" (facturation), tu dis :
Citation:
Sachant qu'une (même) facture peut concerner plusieurs sites. Et qu'un site est forcément concerné par n factures.
==> donc, effectivement
Citation:
Fact 1------n Fact-Site n------1 Site
et tu as donc répondu, toi-même, à ta question, il me semble :
Table T_Fact :
- Id_Fact (clé primaire)
...

Table TR_Site_fact :
- Id_Site (clé primaire 1)
- Id_TypeSite (clé primaire 2)
- Id_Fact (clé primaire 3)

Relation :
T_Sites 1----n TR_Site_fact, via Id_Site et Id_TypeSite ;
T_Fact 1----n TR_Site_fact, via Id_Fact.

Sauf erreur, car vite fait.

Cela, sans se pencher sur le fond de ton analyse que je prends comme déjà décidé.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 09h09   #18
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Bonjour,

je te remercie Richard pour ta réponse.

J'ai dû laisser un peu de côté ce problème, afin d'en résoudre un plus prioritaire...

http://www.developpez.net/forums/d10...eme-relations/

J'y reviens donc dès que j'ai réglé ce préalable.
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 12h06   #19
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Je viens de poster sur ton autre fil.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h16.


 
 
 
 
Partenaires

Hébergement Web