I have developed a NFT marketplace with solidity. When a collection of NFTs is created solidity deploys a new contract for each collection, however I am not sure this is the common way of doing it, since it seems wasteful and more difficult to maintain (if we consider implementing upgradable contracts).
Generally, how do marketplaces handle the creation of new collections? Are all collections stored in one single smart contract? or each collection becomes a deployed smart contract?