Tables & field types — Know when to split a table
A table starts as one concept; as it grows you'll feel one of three signs that it's really two concepts wearing one costume. Splitting early is cheap — splitting late is painful.
• Half the fields are empty for half the rows. If Tasks has renewal_amount and contract_term filled in only for renewal rows, that's two things — split into Tasks and Renewals, with a relation between them if they belong together.
• You keep filtering by one field. If you filter Contacts by type = "Customer" every single time, that field is doing a table's job — split into Customers and Leads, each with its own fields and relations.