Wenn ich das richtig verstehe, log
dient zum automatischen Aufzeichnen von Details von Benutzeraktionen und profile
enthält die Benutzerdaten.
Für das log
Tabelle, Sie scheinen zu versuchen, zusammengefasste Daten zu speichern, die bei jeder Formularübermittlung aktualisiert werden müssten. Ich würde vorschlagen, dass Sie einfach einen neuen Protokolleintrag einfügen [z. log_id
, log_date
, profile_id
, amount
] bei der Einreichung und überlassen die Aggregation dem Bericht. Um den Beitritt von log
zu aktivieren zu profile
, schließen wir profile_id
ein .
Für das profile
Tabelle, sollten Sie wahrscheinlich doppelte Einträge von first_name
zulassen |last_name
|dob
und versuchen Sie, einen anderen Weg zu finden, sie eindeutig zu machen (entweder durch Verwendung von profile_id
, oder per E-Mail, oder Reisepassnummer).
Ich bin mir Ihrer Absichten für rowone
nicht sicher , rowtwo
, rowthree
. Wenn Sie wissen, was sie sind, dann nennen Sie sie explizit; Wenn es sich um Elemente handelt, die sich eine unbekannte Anzahl von Malen wiederholen, ziehen Sie in Betracht, sie in eine separate Tabelle zu verschieben (d. h. zu normalisieren).
Für Ihren Bericht schreiben Sie dann eine Abfrage, um dem log
beizutreten und profile
Tabellen zusammen, mit Aggregation (d.h. GROUP BY
mit SUM
und/oder COUNT
auf die notwendigen Felder. "Besuchszähler" wäre der COUNT
der Protokolleinträge für dieses Profil wäre "Betrag" die SUM
des amount
.