Columns define what data a table actually stores. Picking the right type up front matters — some conversions (e.g. text to number) aren’t possible later without recreating the column and migrating data.

Common column types

  • Single line of text / Multiple lines of text — free text, with a configurable max length.
  • Choice (Option Set) — a fixed list of options stored as an integer value under the hood. Can be local (specific to one table) or global (a shared choice list reusable across multiple tables).
  • Lookup — a reference to a record on another table; this is what creates a relationship (covered next chapter).
  • Whole Number / Decimal / Currency — numeric types; Currency columns store an amount alongside a currency reference and respect the record’s transaction currency.
  • Date Only / Date and Time — with a behavior setting (User Local, Date Only, Time-Zone Independent) that controls how time zones are handled.
  • Yes/No — a simple boolean, displayed as a toggle or two radio options.
  • Calculated and Rollup — computed columns; a Calculated column evaluates a formula in real time from other fields, while a Rollup aggregates related child records on a schedule (not instantly). We’ll use both later in this course.

Requirement levels

Every column has a requirement level that controls form validation:

  • Optional — no validation.
  • Business Recommended — shown with a highlighted border but doesn’t block saving.
  • Business Required — the form won’t save until it’s filled in.

This is a column-level setting, but it can also be overridden per form or dynamically via a business rule — useful when a field should only be required in certain scenarios.

Local vs. global choice columns. If a list of options (like “Priority: Low/Medium/High”) will realistically be reused on more than one table, make it a global choice from the start. Converting a local option set to global later is possible but adds unnecessary cleanup — decide this up front.

Column-level security

Any column can be marked as field-securable, enabling field-level security profiles to control who can read, update, or create a value in that specific column — independent of table-level security roles. We’ll cover this properly in the Security & Access course.