Difference between Custom Objects and Custom Settings
Custom Objects:
- Custom Objects are custom database tables that allow to store information to your organization.
- All Custom field types supported.
- Records are updated by users.
- Data stored in database.
- Requires lookup or master-detail relationship to reference from another object.
- Counts against cross-object reference limit when used in formulas.
- Custom Objects are SOQL expensive.
- We can use Page layouts, record types, validation rules, triggers and workflow rules on Custom Objects.
Custom Settings:
- Custom Settings are similar to Custom Objects and enable application developers to create custom sets of data, as well as create and associate custom data for an organization, profile, or specific user. We can say Custom Settings are like configuration file that we used to have.
- Custom Settings support only Checkbox, Currency, Date, Date/Time, Email, Number, Percent, Phone, Text, Text Area, and URL field types.
- Records are updated by admins or developers.
- Cached in memory (limited to 2mb).
- No relationship field required.
- Not a cross-object reference.
- Custom Settings are SOQL inexpensive.
- No Page layouts, record types, validation rules, triggers and workflow rules can be used on Custom Settings.