Thanks for all your response. My use case is that.
A user (id = 765) signs up in my application.
He chooses Product module template (which contains Product name, price, quantity_available). Then he also wants to customize the module by adding one more column which is, let's say, "max_discount_on_friday".
Now in my database, I will have to create a table like this:
CREATE TABLE USER_765_Product (
id SERIAL PRIMARY KEY,
product_name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
quantity_available INT NOT NULL,
max_discount_on_friday DECIMAL(5, 2),
);
Also the user can query based on discount/price/name or whatnot. So the querying as well becomes fully dynamic and there is no Static Schema whatsoever.