Saya pikir struktur yang Anda sarankan (tanpa bidang "ditugaskan" sesuai komentar) akan berfungsi, dengan penambahan tabel tambahan, katakanlah "Submissions_User", yang berisi referensi ke user_id &bidang tambahan untuk menghitung pengiriman. Maka yang Anda perlukan hanyalah "pendengar acara" sesuai postingan ini dan saya pikir Anda akan siap.
EDIT:Untuk lencana pencapaian, jalankan pendengar acara pada setiap pengiriman (hanya untuk pengguna yang membuat pengiriman saja), dan berikan lencana yang relevan saat itu juga. Untuk lencana berbasis waktu, saya akan menjalankan pekerjaan CRON setiap malam. Ulangi daftar pengguna lengkap sekali dan berikan lencana jika berlaku.