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 23/01/2012, 10h16   #1
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 193
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 193
Points : 38
Points : 38
Par défaut Modelisation (tables et relations)

Bonjour a tous,

Je rencontre quelques problemes dans ma base de donnees et j'aimerais avoir vos avis concernant la modelisation de ma base de donnees.
Ainsi que les relations entre les tables.

Vous trouverez en piece jointe une copie de ma base.
Il y a une frontale et une dorsale.

La base contient un formulaire qui permet d'entrer des transactions fictives entre deux personnes (base utilisee pour des exercices academiques):
Excemple:
- Pariticipant numero 1 (Trader)
- Achete
- Une action de la compagnie APPLE (AAPL)
- Du participant numero 2 (contrepartie)
- specifie la quantite achetee
- et le prix de chaque action
- La valeur de la transaction est calculee automatiquement
- la date de la transaction est definie lorsque la transaction est confirmee.


Voici les donnees:
- il y a 400 participants qui peuvent etre soit Traders et Contreparties mais jamais les deux a la fois (1 ne peut acheter ou vendre a lui meme)
- Il y a quatre actions (Apple, BP, Boeing et volkswagen) sur le marche.
- Chaque participant a initialement 5000 actions de chaque compagnie
- Chaque participant a initialement 1 000 000 de dollars.

Aussi j'avais commence a definir une table enregistrant toutes les transactions effectuees. C'est sur cette table que le formulaire de capture est base.

Le probleme est que lorsque plusieurs personnes utilisent leur bases frontales pour capturer les deals, il y a des conflits sur les numeros d'enregistrements.


J'ai la forte impression que mes tables ne sont pas definies et liees correctement. Je ne sais pas combien de tables je devrais avoir.

Ce que je n'arrive pas a faire par ailleurs:
Faire varier le nombre d'actions de chaque participant selon la transaction effectuee (nombre augmentant si le trader achete, et son capital diminue par la valeur total achetee)



Je vous remercie d'avance pour toute aide que vous pourriez m'apporter!

cordialement,
JEO
jeo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 16h48   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 188
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 188
Points : 2 823
Points : 2 823
Bonjour Jeo13,

Pas très clair, tout cela...

Intéressons-nous, d'abord, à la modélisation (uniquement les tables).

En premier lieu, pour quelqu'un de l'extérieur, il faut utiliser les mêmes mots dans la discussion du forum et dans la base exemple (traduire "Il y a quatre actions" par "tbl_Stocks" n'est pas évident).

Ensuite, si j'ai bien compris, pour les tables de rétérence (souligné=clé primaire, #=clé étrangère) :
Citation:
Envoyé par Jeo13
il y a 400 participants
==> tbl_Trade(TradesID, Name, ...) ;
Citation:
Envoyé par Jeo13
Il y a quatre actions
==> tbl_Stock(RIC, Name, ...) ;
Citation:
Envoyé par Jeo13
Chaque participant a initialement 5000 actions de chaque compagnie
==> tbl_StockVolume(#TradesID, #RIC, Volume, ...) ;
Citation:
Envoyé par Jeo13
Chaque participant a initialement 1 000 000 de dollars
==> modification de tbl_Trade(TradesID, Name, Capital, ...).
=> Capital initial par trader.

pour les tables de transaction :
Citation:
Envoyé par Jeo13
il y a 400 participants qui peuvent etre soit Traders et Contreparties mais jamais les deux a la fois (1 ne peut acheter ou vendre a lui meme)
==> tbl_Transaction(TransactionID, #TraderID, #ContrepartieID, #RIC, Quantity, Price, TransactionDate, ...).
=> pas la peine de stocker Quantity*Price ;
=> trigger pour vérifier que TraderID<>ContrepartieID (ou dans le formulaire) ;
=> à la validation de la transaction :
  • décrémentation volume du vendeur ;
  • décrémentation capital du vendeur ;
  • incrémentation volume de l'acheteur ;
  • incrémentation capital de l'acheteur.
Je te laisse travailler sur les relations et contrôles d'intégrité qui sont relativement évidents.
__________________
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 24/01/2012, 15h24   #3
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 193
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 193
Points : 38
Points : 38
Merci beaucoup pour cette reponse detaillee!
Je vais m'interesser aux relations entre les tables + integrite.
J'ai une autre question concernant la structure de la base

En fait, Il y a dix personnes qui doivent faire la capture des transactions depuis dix PC differents. Je comptais faire donc dix bases frontales et une base dorsale. Or en ayant teste avec trois pc, il y a eu des conflits d'ecriture sur les enregistrements...

Est-ce que la structure de la base reste la meme si je veux utiliser une base dorsale et dix frontales? Comment eviter ces conflits sur les enregistrements?
jeo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 15h37   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 188
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 188
Points : 2 823
Points : 2 823
Bonjour Jeo13,

Citation:
Envoyé par Jeo13
Est-ce que la structure de la base reste la meme si je veux utiliser une base dorsale et dix frontales?
==> oui : il s'agit d'établir une modélisation optimale garantissant une cohérence des données (pas forcément ma suggestion, d'ailleurs).


Citation:
Envoyé par Jeo13
Comment eviter ces conflits sur les enregistrements?
==> à rechercher du côté de la gestion des verrouillages d'enregistrements (je connais mal le sujet). Par défaut, Access affiche une boîte de dialogue : peut-être est-ce gérable autrement (voir forum, FAQ, Google, etc...) ?
__________________
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 19/02/2012, 20h15   #5
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 193
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 193
Points : 38
Points : 38
Citation:
Envoyé par Richard_35 Voir le message
Je te laisse travailler sur les relations et contrôles d'intégrité qui sont relativement évidents.
Bonjour Richard_35,

Desole pour le retard de ma reponse, j'etais en voyage plusieurs semaines...

J'ai travaille sur mes tables et sur leurs relations.
J'ai un gros doute sur ces relations.

Pourrais-tu stp jeter un coup d'oeil a l'image en piece jointe et me dire ce que tu en penses?

merci d'avance!
jeo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2012, 11h41   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 188
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 188
Points : 2 823
Points : 2 823
Bonjour Jeo13,

C'est un peu loin, tout ça ...

Il faudrait ajouter, une seconde fois, la table tbl_Traders et la lier à tbl_Transaction via TraderID=ContrepartyID.

Ensuite, il faudrait que tu coches "intégrité référentielle" pour toutes les relations.
__________________
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 20/02/2012, 18h21   #7
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 193
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 193
Points : 38
Points : 38
Merci Richard pour toute l'aide que tu m'as apportee!

jeo13 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 16h44.


 
 
 
 
Partenaires

Hébergement Web