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) :

Envoyé par
Jeo13
il y a 400 participants
==>
tbl_Trade(
TradesID, Name, ...) ;

Envoyé par
Jeo13
Il y a quatre actions
==>
tbl_Stock(
RIC, Name, ...) ;

Envoyé par
Jeo13
Chaque participant a initialement 5000 actions de chaque compagnie
==>
tbl_StockVolume(
#TradesID, #RIC, Volume, ...) ;

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 :

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.
Partager