# Databases basics

_Typed fields, views, formulas, and relations._

Canonical: https://snoze.dev/help/databases-basics/

Databases hold the structured side of your work — tasks, contacts, content
calendars, inventory, deals. Where a page is prose, a database is records: rows
of the same shape that you can filter, sort, group, and roll up. This page is
the overview; the deeper guides are linked at the end.

## Typed fields

Every field has a type, and the type is what keeps a database trustworthy.
Choose from text, number, select and multi-select, date, checkbox, person,
file, URL, and more. Types drive everything downstream: a date field powers
"due this week" filters, a select field becomes board columns and colored
pills, a number field can be summed at the bottom of a column.

## Editing many records at once

Select rows with the checkboxes in a table, or select them all from the
header, and choose **Set value** in the bar that appears. Pick a property and a
value, and every selected record gets it in one step; leave the value empty to
clear that property instead. The change applies to all selected records or,
if one of them can't take the value, to none.

## One database, many views

A database stores records once and lets you look at them in as many **views**
as you need. Each view carries its own filters, sorts, grouping, and visible
fields — a table for triage, a board grouped by status, a filtered list per
teammate, a chart of the totals. Switching views never changes the data
underneath; it changes the question you're asking of it. [Views and
filters](https://snoze.dev/help/views-and-filters/) covers each layout in depth.

## Relations and formulas

Databases get powerful when they stop being islands. A **relation** field links
records across databases — tasks to a project, invoices to a client — and the
link is two-way, so each side can see the other. A **formula** field computes a
value from other fields on the same record, from simple arithmetic like
`price * quantity` to conditions and rollups across relations, and it stays up
to date automatically. [Relations and formulas](https://snoze.dev/help/relations-and-formulas/)
shows the patterns that carry most teams.

## Getting data in and out

You type records directly, but you don't have to be the only source. Point a
**form** at a database to collect submissions from anyone, including people
outside your workspace. Connect an **external data source** to sync a service's
records into a database on a schedule. And the [AI
assistant](https://snoze.dev/help/work-with-the-assistant/) can create and edit records for you
on request.

> [!NOTE]
> Model one real-world thing per database — projects, tasks, people, clients —
> and connect them with relations rather than stuffing everything into one
> giant table. Small, linked databases stay far easier to filter and reason
> about.

## Go deeper

- [Sub-records and task progress](https://snoze.dev/help/sub-records/) — break work into subtasks and track completion.
- [Views and filters](https://snoze.dev/help/views-and-filters/) — table, board, list, and chart layouts.
- [Relations and formulas](https://snoze.dev/help/relations-and-formulas/) — connect databases and compute values.
- [Collect data with forms](https://snoze.dev/help/collect-data-with-forms/) — submissions straight into a database.
- [Connect external data](https://snoze.dev/help/connect-external-data/) — sync outside sources in.