2017-07-23 3 views
2

Ich versuche eine iOS-Anwendung zu schreiben, die aufzeichnet, wie viel Gewicht Sie im Fitnessstudio heben, aber ich habe Mühe, mein Core Data-Schema zu erstellen. Im Moment habe ich eine Übung Entity, die Informationen über eine bestimmte Übung (z. B. Bizeps Curl) speichert und ich habe eine Workout-Entität, die nur einen Namen & Bild hat. Die Trainingseinheit hat eine Viele-zu-Viele-Beziehung mit der Trainingseinheit. Was ich integrieren muss, ist "Sitzungs" -Funktionalität - die Fähigkeit für einen Benutzer, ein Workout zu absolvieren und die Gewichte zu speichern, die er/sie in einem bestimmten Training angehoben hat. Z.B. Ich möchte sagen, dass ich mein Beintraining abgeschlossen habe und diese Gewichte für jede Übung angehoben habe. So sehen meine Core Data im Moment aus.Kerndatenschema Design

schema

Wie würde ich mich über die Sitzungsdaten zu speichern? Ich habe das Gefühl, dass die Sitzung eine Eins-zu-eins-Beziehung mit einem Training haben muss, aber das lässt mich keine Ergebnisse für jede Übung im Training hinzufügen ... Ich denke auch, dass ich vielleicht ein Wörterbuch brauche, um die Gewichte für jede Übung zu speichern.

Jede Hilfe würde sehr geschätzt werden, da ich nie zuvor wirklich über Datenbanken gelernt habe.

Dank

EDIT: Ive mein Schema geändert wie diese So

schema2

Antwort

0

zu suchen, in Bezug auf Ihre schema2, in der Datenbank entwerfen es in der Regel schlechte Praxis ist es, Beziehungen zu haben, die ein „Kreis bilden ". Wenn eine Entität nur ein einzelnes Attribut besitzt, kann sie auch auf ein Attribut des übergeordneten Elements reduziert werden.

Ich würde wahrscheinlich Ihr Design ein bisschen anders nähern.

Sie sollten Ihre Übungseinheit in Übung und Übung_History oder etwas ähnliches aufteilen. Dann würden Sie jede Beziehung zwischen Session und Workout entfernen und eine Eins-zu-viele-Verbindung zwischen Session und Exercise_History haben.

Wenn Lift nur ein einzelnes Attribut besitzt, sollte es wahrscheinlich auch keine eigene Entität sein.

Wenn Sie so vorgehen, sollten Sie die gewünschten Beziehungen und Funktionen erhalten.