2010-07-29 15 views
0

J'ai un tableau avec un résumé mensuel des KPI. Le client veut maintenant être en mesure de faire des ajustements aux données d'origine. Je dois permettre des ajustements ainsi que la préservation des données d'origine. Le rapport que je génère affichera les données d'origine + ou les ajustements.Table d'ajustement des KPI

Voici un exemple de ce que je dois être capable de faire.

Tableau A REPORT_MONTH 7/31 KPI_1_QTY 88

client demande à décrémenter KPI_1_QTY par 5. Il en résulte KPI_1_QTY être 83. je dois signaler 83, mais doivent conserver la valeur d'origine aussi bien.

Des idées sur la façon de coder cela?

+0

Langue? Base de données? – NullUserException

Répondre

1

Il existe un certain nombre de façons de résoudre le problème général de la conservation des traces d'audit des données d'origine. Le plus simple consiste à horodater la ligne et à inclure un champ de bit "IsHead".

Par exemple:

FactID Timestamp Attribute Value IsHead 
2  8/1  KPI_1_QTY 83 true 
1  7/31  KPI_1_QTY 88 false 

Si vous voulez la branche « tête » des données, vous filtrez sur IsHead = true (généralement vous créez une vue pour cela).

Si vous voulez le journal des modifications, vous affichez toutes les lignes dans l'ordre décroissant par horodatage.

Si vous voulez que les données telles qu'elles existent à un moment précis dans le temps, vous reconstruisez les données telles qu'elles existaient à cette date (à gauche comme un exercice pour le lecteur).

S'il existe des propriétés associées à l'ajustement, créez une autre table avec les champs dont vous avez besoin pour décrire la modification. Par exemple ...

FactID ModifiedBy ModifiedOn ValueDelta Description 
2  Fred  8/1  -5   Adjusted KPI_1_QTY per customer request