The requirement is: Users should be able to define the strucure of the document they want to store. For example, a user can decide to store a bank statement with the following structure: - post_date (date) - particulars (text) - debit (number) - credit (number) - value_date (date) - reference (text) then select a file to load it into the database. Another user or the same user can also load a different document with a different structure. If we knew all the different structures of documents available, we can create all the tables in the database, but the system must be such a way that the user can load any type of document, and define its own structures. I am looking for a way to save all this in a single table if possible. Or should I create dynamically a new table table when the user define a new structure of document to load? Is that the best way?