With Microsoft Dynamics CRM Online there is a limit to the number of entities you can create. You can find information about the maximum number in the Resources In Use page for your deployment. If you need more custom entities, contact Microsoft Dynamics CRM technical support. This upper limit can be adjusted. With Microsoft Dynamics CRM on-premises, there is practically no limit to the number of custom entities you can create other than the maximum capacity for your version of Microsoft SQL Server. See Maximum Capacity Specifications for SQL Server.
Within each entity there is an upper limit on the number of fields you can create. This limit is based on the technical limitations on the amount of data that can be stored in a row of a database table. It is difficult to provide a specific number because each type of field can use a different amount of space. The upper limit depends on the total space used by all the fields for the entity.
Most people do not create enough custom fields to reach the limit, but if you find yourself planning to add hundreds of custom fields to an entity, you should consider if this is the best design. Do all the fields you plan to add describe properties for a record for that entity? Do you really expect that people using your organization will be able to manage in a form that includes such a high number of fields? The number of fields you add to a form increase the amount of data that has to be transferred each time a record is edited and will affect the performance of the system. Take these factors into consideration when you are adding custom fields to an entity.
Option set fields provide a set of options that will be displayed in a drop-down control on a form or in picklist control when using advanced find. Dynamics CRM can support thousands of options within an Option set, but you shouldn’t consider this as the upper limit. Usability studies have shown that people have trouble using a system where a drop-down control provides large numbers of options. Use option set field to define categories for data. Don’t use option set fields to select categories that actually represent separate items of data. For example, rather than maintain an option set field that stores each of hundreds of possible manufacturers of a type of equipment, consider creating an entity that stores references to each manufacturer and use a lookup field instead of an option set.
Disclaimer: part of this text is part of the “Administering CRM 2015 for online and on-premises”-Guide, I have not written this myself and do not claim any ownership of it. Moreover this document is provided “as-is”.