Sign up three imaginary people below, and watch where each one goes.
| id | plan | created | |
|---|---|---|---|
| 1 | alice@example.com | pro | 2026-09-01 |
| 2 | bob@example.com | free | 2026-09-12 |
| 3 | carol@example.com | free | 2026-09-20 |
The users table has 3 rows. Every row you add gets the next id and the same columns as the others. That is all a table is: a named list of rows that share a shape.
Each sign-up became a row in a table, inside a database: the organised place your app keeps things so it can find them again.
The users table after three sign-ups
id 1
- ana@example.com
- signed up
- 25 Sep
id 2
- ben@example.com
- signed up
- 25 Sep
id 3
- cho@example.com
- signed up
- 25 Sep
Why not just a file? Because thousands of people may sign up at once, each one needs to be found in a blink, and some rules must never be broken, like two accounts with the same email.
Most AI-built apps use Postgres. PostgreSQL's own site calls it "a powerful, open source object-relational database system", and it dates back to a 1986 project at Berkeley.
The database lives on a server, never on the phone. The phone asks for rows; the database decides what to hand over.
Try it with the rules off. In the sandbox, sign up the same email twice, or leave the email blank. A well-set-up database refuses both. Switch the rules off and watch the mess arrive.
Check yourself
0/3 got itSaved on this device only. No account, no streaks.
Next in where your data lives: Tables, rows and columns.




