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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage