Methodology to store projects information

I am developing an application which allow the user to create Projects. Currently, when the client creates a new project, a model is created with the following structure

  • PROJECT
    • Information (Name, Date, Type … )
    • Properties ( has x, user should use that,… )
    • Collection of Data ( The number of variables depends on the user, so it’s not fixed)
      • Data Information (Variable name, equation,…) User defined properties
      • Statistics results ( mean, deviation, …) things that are computed in the program for each variable
    • Results (From the collection, the computed results)
      • General (results that always appear )
      • Collection of specific results ( results that depending on some Properties of the project, can be shown)

Now this is all the information the user would need in a project. I though of using databases but the different types of models and collections put me off, so instead, what I decided to do is create a database table with the Project reference, and the path to a json file, where I serialize PROJECT model.

However, as there are different pages to acces different section of the model, I am having problems with keeping everything as a reference. When a new project is created, a new PROJECT model is created, and all the ViewModels try to access this big Model and modify its values.

Is my approach correct or are there other more suitable methods to save and read project files that avoid creating a big PROJECT model where everyone is accessing to read and write?

Thank you