2010-01-26 20 views
16

Je veux concevoir une base de données qui gardera l'enregistrement pour la transaction financière. Je veux le concevoir comme produit pour qu'il puisse être utilisé pour n'importe quel type de transaction financière. Y at-il quelques principes de conception spécifiques à la conception de base de données de transaction aidez-moi à rendre la base de données plus durable à long terme avec des changements de niveau architecturaux minimes. Certains bons exemples seront également d'une grande aide.Principes de conception pour la conception de l'architecture de base de données du système de transactions financières?

Merci

Répondre

18

Certaines choses particulières aux systèmes financiers comprennent des contrôles internes (T son est un terme comptable critique, faire des recherches pour vraiment penser celui-ci à travers). Des choses comme la personne qui entre la valeur du chèque ne peuvent pas l'approuver. Des choses comme l'utilisation de procs stockés et pas de SQL généré à partir de l'application afin que vous puissiez limiter les droits aux procs (aucun SQL dynamique du tout - dans un système financier) et ainsi les utilisateurs ne peuvent faire que ce qu'ils sont autorisés à faire. Aucun droit pour quiconque sauf la production dba et une alternative aux tables. La fraude est ce que vous essayez de protéger le système contre les attaques extérieures. La sécurité est essentielle pour les systèmes financiers.

Vous avez également besoin de tables d'audit pour savoir qui a modifié les données et quand et quelle était l'ancienne valeur. Ce n'est pas seulement un moyen supplémentaire d'aider à trouver des problèmes si quelqu'un a contourné les contrôles internes (ou le système a oublié de mettre en œuvre certains contrôles critiques) a volé de l'argent, mais il est souvent essentiel de pouvoir annuler une erreur sans avoir à restaurer. En général, les systèmes de comptabilité ont souvent des champs de données qui ne sont pas visibles par l'utilisateur et qui sont générés par des valeurs par défaut ou d'une manière que l'utilisateur ne les voit pas. Une autre chose est que vous devez voir les actions à temps pour que les choses qui pourraient ressembler à une relation naturelle puissent avoir besoin d'être dénormalisées pour préserver ce que le coût était au moment où l'action s'est produite. Donc, si vous avez une table de taux horaire, vous utiliserez cela comme une recherche pour obtenir le taux au moment de l'action ne pas s'y joindre pour obtenir le taux lorsque vous interrogez.

Les systèmes financiers ont des données privées dans eux, presque toujours, pensent comment vous allez protéger ces données. Vous devrez crypter et décrypter les données. Vous voulez probablement aussi une sauvegarde cryptée.

Ces données sont l'élément vital d'une entreprise, il est essentiel que vous ayez un bon plan de sauvegarde et beaucoup de pratique de restauration. Les sauvegardes hors site sont critiques.

L'intégrité des données est critique. Vous avez besoin des types de données corrects et vous avez besoin de relations, de contraintes et de déclencheurs pk/fk pour appliquer les règles.Un système financier ne peut pas se permettre d'avoir des enregistrements orphelins.

Vous devez envisager des suppressions très attentivement. Les systèmes financiers effectuent souvent des suppressions logicielles (marquent les enregistrements comme supprimés pour éviter de perdre des données historiques) Oui, la société XYZ n'est plus un client, mais vous ne voulez pas perdre l'historique financier des commandes qu'ils avaient dans le passé. Envisagez d'utiliser la suppression en cascade dans un système financier

Ne vous contentez pas de parler aux comptables lors de la conception du système, parlez aux responsables financiers du système et aux auditeurs qui vérifieront les résultats. Pensez aux données fiscales et à l'archivage de données Les systèmes financiers interrogent souvent les anciennes données pour les rapports, les rapports sont gros, gros, gros pour les systèmes financiers. Pensez comment le faire efficacement sans affecter la saisie de données au jour le jour.

3

Selon un pas ce que vous en train d'essayer d'atteindre, pour vous de créer un système de « transactions financières » qui est utile, vous aurez besoin de vous enseigner des revues, des livres comptables et d'autres détails de la comptabilité. Ce n'est pas aussi simple que de consigner les transactions réelles dans un tableau ...

En réalité, je ne pense pas que vous trouviez des principes de conception de base de données pour les systèmes financiers qui soient si différents de tout système de base de données qui en a besoin. l'information est correcte à 100%.

Par conséquent, la lecture de ce qui suit lorsque vous travaillez avec des bases de données n'a jamais tué personne:

Database Design Best Practices

Do you source control your databases?

Database Development Mistakes Made by App Developers

What are some of your most useful database standards?