Jika saya memahami ini dengan benar, log
adalah untuk merekam detail tindakan pengguna secara otomatis, dan profile
menyimpan detail pengguna.
Untuk log
tabel, Anda tampaknya berusaha menyimpan data yang diringkas, yang perlu diperbarui dengan setiap pengiriman formulir. Saya sarankan Anda hanya memasukkan entri log baru [mis. log_id
, log_date
, profile_id
, amount
] saat penyerahan dan menyerahkan agregasi ke laporan. Untuk mengaktifkan bergabung dari log
ke profile
, kami menyertakan profile_id
.
Untuk profile
tabel, Anda mungkin harus mengizinkan entri duplikat first_name
|last_name
|dob
dan coba temukan cara lain untuk membuatnya unik (baik dengan menggunakan profile_id
, atau melalui email, atau nomor paspor).
Saya tidak yakin dengan niat Anda untuk rowone
, rowtwo
, rowthree
. Jika Anda tahu apa itu, sebutkan secara eksplisit; jika itu untuk item yang berulang kali tidak diketahui, pertimbangkan untuk memindahkannya ke tabel terpisah (yaitu normalisasi).
Untuk laporan Anda, Anda kemudian akan menulis kueri untuk bergabung dengan log
dan profile
tabel bersama-sama, dengan agregasi (yaitu GROUP BY
dengan SUM
dan/atau COUNT
pada bidang yang diperlukan. "Jumlah Kunjungan" akan menjadi COUNT
entri log untuk profil itu, "Jumlah" akan menjadi SUM
dari amount
.