Projekt bazy danych do śledzenia postępu w czasie

Mam pozornie prosty problem, ale nie jestem w stanie znaleźć rozwiązania. Tworzę projekt bazy danych do przechowywania celów. Cele są aktualizowane ręcznie i potrzebuję wpisu za każdym razem, gdy cel jest aktualizowany. Na przykład:

Stracić 10 funtów:

Dzień 1: stracił 1 funt. Dzień 3: stracił 2 funty. dzień 7: stracił 7 funtów.

A kiedy suma funtów osiągnie kwotę docelową, cel ten zostanie ukończony. Oto mój projekt, ale widzę kilka problemów:

Tabela bramek:

GoalId - int - PK

UserId = int - FK

GoalTypeId = int - FK

Tytuł - ciąg

Tabela postępu:

ProgressId - int - PK

GoalId - int - FK

IntervalX - ciąg?

IntervalY - ciąg?

GoalAmount - ciąg?

Czy to najlepszy sposób na śledzenie tego? Czy ktoś widział tam podstawowy schemat, z którego mogę skorzystać, aby to osiągnąć?

Inna myśl, jaką miałem, to może użyć tego projektu dla wszystkich moich surowych danych i polegać na procedurach przechowywanych i widokach, aby przedstawić dane w taki sposób, w jaki chcę?

EDYTOWAĆ:

Przepraszam, opracuję trochę. Interwał X i Y będzie tym, co wartości interwału są na wykresie. Jeśli więc X = 1 i Y = 10, oś x będzie wynosić 1,2,3, ... i Y przejdzie 10,20,30, ... (To jest coś zupełnie innego, muszę znaleźć najlepsze sposób implementacji, ale na razie na backburner)

Typy bramek są trudne, ponieważ chciałbym zrobić wiele. Będą musieli być wieloma różnymi typami danych:

Przykłady celów:

Czytaj codziennie - boolean

stracić 10 funtów - int lub float

zaoszczędź 5000 dolarów - pieniądze lub float

hit limit sprzedaży - float

Dowiedz się nowego języka - ciąg? (nie wiem, jak najlepiej śledzić ten)

I tak dalej ... Mam nadzieję, że to pomoże trochę wyjaśnić

questionAnswers(4)

yourAnswerToTheQuestion