Publish courses in the background -> Users can pay to register for multiple courses to study -> After the user has finished studying, the background will arrange exams for users who have completed the corresponding courses -> Users who fail the exam need to pay again online before taking the make-up exam ;How should we design the data table with such logic?