I want to design a user tracking system between different tables/models. I want to track the user's progress. There is a Module table which is related to sections and sections are related to sub-sections. Each sub-section can relate to different independent tables. The independent tables store different items (slides, videos, texts) which the user can go through in a linear flow just like a Coursera course. The flow will be predetermined by us but can be changed by us. So, the linear flow between the sub-sections can't be hardcoded. I also need to keep track of the user's progress through these sub-sections.

For Example:

A sub-section can point to game table where the user_info, game_score, game_completion_date_time will be stored or there might be case where the sub-section is pointing to slides table storing slide_text, slide_url and user_info.

I want to keep track of changes in those table so what should be my approach. Below i have posted an image in which i am approaching to the problem.


I want to track the user's progress.

A module is a collection of sections.

enter image description here enter image description here

enter image description here

  • When you say I want to design a user tracking system, you want to track what about users, their progress? ~ There is a Module table, please define Module, it can mean many different things to a DBA. – RinkyPinku Feb 16 '19 at 12:24
  • Hi @Mukul it seems you are creating something very ambitious. Please consider taking help from a friend programmer or hiring a developer. Your efforts and tenacity show in the detailed diagrams you posted but there's a lot of technical misunderstanding here – RinkyPinku Feb 16 '19 at 14:36
  • @RinkyPinku I have updated the post. – Mukul Mantosh Feb 16 '19 at 14:36
  • Thanks for the clarifications, please note some technical difficulties: 1. it's not advisable to store logic (game rules) in a table, that is the coding part not DB part (see business logic). 2. keeping track of changes in table is pushing the limits of current RDBMS technology, you need more – RinkyPinku Feb 16 '19 at 14:40
  • I understand you may not want to disclose your whole idea but you can contact me if you need – RinkyPinku Feb 16 '19 at 14:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.