Datenbankdesign zur Verfolgung des Fortschritts im Zeitverlauf
Ich habe ein scheinbar einfaches Problem, aber ich kann keine Lösung finden. Ich erstelle ein Datenbankdesign, um Ziele zu speichern. Die Ziele werden manuell aktualisiert und ich benötige jedes Mal einen Eintrag, wenn das Ziel aktualisiert wird. Zum Beispiel:
10 Pfund verlieren:
Tag 1: 1 Pfund verloren. Tag 3: 2 Pfund verloren. Tag 7: verlor 7 Pfund.
Sobald die Summe der Pfunde den Zielbetrag erreicht, ist dieses Ziel erreicht. Hier ist mein Entwurf, aber ich sehe einige Probleme damit:
Zieltabelle:
GoalId - int - PK
UserId = int - FK
GoalTypeId = int - FK
Titel - Zeichenfolge
Fortschrittstabelle:
ProgressId - int - PK
GoalId - int - FK
IntervalX - Zeichenfolge?
IntervallY - Zeichenfolge?
GoalAmount - String?
Ist dies der beste Weg, um dies zu verfolgen? Hat jemand ein Basisschema gesehen, aus dem ich es aufbauen kann, um dies zu erreichen?
Ein anderer Gedanke, den ich hatte, war vielleicht, dieses Design für alle meine Rohdaten zu verwenden und mich auf gespeicherte Prozeduren und Ansichten zu verlassen, um die Daten so darzustellen, wie ich es möchte?
BEARBEITEN:
Entschuldigung, ich werde etwas näher darauf eingehen. Intervall X und Y entsprechen den Intervallwerten in einem Diagramm. Also, wenn X = 1 und Y = 10, dann geht die x-Achse nach 1,2,3, ... und Y geht nach 10,20,30, ... (Dies ist etwas ganz anderes, was ich brauche, um das Beste herauszufinden Weg zu implementieren, aber das ist auf dem Rückgrat für jetzt)
Arten von Zielen sind schwierig, da es viele gibt, die ich gerne machen würde. Sie müssen aus einer Reihe verschiedener Datentypen bestehen:
Beispiele für Ziele:
Täglich lesen - Boolean
10 Pfund verlieren - int oder schweben
Sparen Sie $ 5000 - Geld oder treiben Sie
Verkaufsquote erreicht - float
Eine neue Sprache lernen - Zeichenfolge? (Ich bin mir nicht sicher, wie ich das am besten verfolgen kann.)
Und so weiter. Hoffe das hilft ein bisschen zu klären