Spreadsheet versus Database
Share
Explore
Databases - A closer look

icon picker
The Power of a Database

Writable! Views!
Same data, different places, different views.
One of the primary benefits of a relational database powering your app is writable views ー the ability to see the same data in difference places, across multiple layouts, and still be able to edit the values. With tables, Coda brings that ability into your doc surface ー like having a table of names and dates and being able to edit the date in a table, or by dragging and dropping in a calendar view and having all the values stay up to date
Readable formulas
The Coda Formula Language CFL is based on chaining. This allows you to read and understand the formula much like a sentence.
=Table Tasks.filter(task owner=me).sort(due date).task name
(ie: Coda, go to the tasks table, filter the entries for those where I am the task owner, sort them by due date, and return the task name)
Compare this with an index-match spreadsheet formula:
=Index($C$4,match(h1,$A$1:$A$5))
which nobody but the spreadsheet creator will be able to decipher without access to the underlying spreadsheet.
Projecting the data of other tables, ie unlocking relations
In Coda, a lookup column defines a relationship with another table. By defining lookup columns, you are able to project the fields of the underlying row into your current table (rather than, say, count the number of columns to the right of your VLOOKUP range in Excel).
The screenshots below are obtained from Coda’s Al Chen’s blog post “from one spreadsheet nerd to another”, listed in the
Say you want to pull in the person responsible for a given team into a task list. In a spreadsheet, you’d have two “tables” at arbitrary locations, and would need to create the connection between the two with a VLOOKUP. If you add a new task, be sure to copy the formula down. If someone reorders the columns, you’re toast.
image.png
In Coda, the same thing is achieved with a Lookup column ー where the selection of the team (e.g. Product Management) is actually a rich reference to the entire row of the Teams table. In technical terms, references are like pointers in that they don’t require us to rescan the entire Teams table every time a new row is added.
image.png
Access your database data anywhere
ie, type a formula anywhere on your blank canvas, and pull in the data. Customized reports, anyone? Hardcode the text “Last month, we sold ____ chairs”. And then, type in the corresponding formula right there on the canvas. The number of chairs will always stay up to date automatically.
Spot trends and identify opportunities
Anyone is now able to easily ask questions of data that previously would live in silos across several sheets.
Streamline the data entry process
Structure how data entry shall be made. Ditch the slack, email, phone, hallway chaos and have all data stored in one table.
Templates
You only need to define a workflow once. Store it as a template, and use it for your next project.
Decouple data entry from data presentation
You decide which data is visible to specific users, while retaining the ability for these users to edit the data.
Define permissions
With the click of a button (pun intended), you can allow Manager X to approve travel request. The button will be disabled for anyone else accessing the doc.
Find more information about the powers of a database in these sections:


Share
 
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.