2010-09-24 2 views
0

J'ai l'impression d'avoir frappé un mur en essayant de structurer ce que je pensais être un simple schéma de base de données pour modéliser des transactions financières de base. J'espère que certains d'entre vous avec plus d'expérience peuvent peser et me diriger dans la bonne direction.Comment dois-je modéliser ces transactions financières simples?

Mon application a quatre types de baux différents que les clients peuvent acheter. En tant que tel, chaque type de bail a sa propre table, et afin de conserver l'intégrité référentielle, chaque table de bail a sa propre table de transactions.

Mon croquis original ressemblait à ceci:

Tout d'abord, j'ai utilisé une référence FK types de fonction d'éviter d'utiliser des entiers signés. Cela n'a aucun sens d'avoir un paiement négatif, alors j'ai pensé que ça marcherait bien pour chaque transaction d'avoir une référence de débit ou de crédit. Est-ce que ça a du sens?

Une autre chose qui me dérangeait, c'est que toutes les transactions ne semblent pas égales. C'est-à-dire, je pense que les transcriptions pour cette application devraient éventuellement être regroupées en tables séparées.

Les transactions telles que les frais fixes, les frais à taux variable, les paiements, les intérêts et les annulations devraient-elles toutes être regroupées dans la même table? Cela me semble désordonné, mais je suis déjà coincé avec une table de transactions pour chaque type de location, donc diviser encore plus ces tables n'est pas très attrayant. À peu près tous les types de transactions autres que les paiements seront générés par programmation, donc je peux avoir des références dans le champ "Notes" qui spécifie le paiement auquel un chèque retourné ou une transaction vide référence. Est-ce suffisant ou est-ce que je pense à tout cela?

Merci!

+0

Est-ce que les types de bail 1,2, 3 .. ont des colonnes différentes? Qu'en est-il des transactions? Ont-elles toutes la même colonne ou la structure d'enregistrement dépend-elle du type de contrat? –

+0

L'image n'est plus disponible. Veuillez le télécharger à nouveau. – ma11hew28

Répondre

1

Quel est le problème avec les montants négatifs? Il est bon d'avoir un enregistrement des types de transactions, mais si vous insistez sur le fait que tous les montants sont positifs, vous êtes prêt pour un monde de douleur lorsque vous essayez de calculer les totaux. Il suffit de stocker les paiements et les autres types de transactions à entrée de fonds sous forme de montants positifs, de remboursements, etc. en tant que montants négatifs. Cela vous permet également de faire des choses comme enregistrer une rétrofacturation en raison d'une erreur (par exemple, en facturant le mauvais compte sur la carte du client) comme un paiement négatif, ce qui est différent d'un remboursement.

2

Est-ce que différents types de baux ont des caractéristiques différentes? Si ce n'est pas le cas, les séparer en tables séparées ne fait rien et ajoute à la complexité de la base de données et de l'application programmée. Avoir une seule table de transaction pour tous les types de baux va presque certainement vous éviter des problèmes plus tard.

Je vous suggère de jeter un oeil à certaines des solutions présentées dans Database Answers. Il y a beaucoup de bases de données financières là-bas. Vous pourriez obtenir quelques indices.

Questions connexes