What’s This about Snapshots?

A reader wrote in and asked “What is the QuickBase feature that is most important, but least used?” The answer is easy  - snapshot fields.

A snapshot field captures data from one table and stores it in a related table. (click here for the QuickBase help on this).

Lookup Fields

For example, let’s say you have a table of all the students in a school, including a reference to their teacher. Then you have a related table that lists all the teachers and their phone numbers. You could create a field in the student table called “My Teacher’s Phone Number”, and make it a lookup field that refers to the Phone Number field in the teacher record.

Easy enough so far, and in this case, you do not need a snapshot field, because if the teacher’s phone number changes, you want the “teacher phone number” field in the student record to change as well.

When a Snapshot is Needed

But let’s look at another example. Let’s say that you are using QuickBase to create invoices. For simplicity sake, let’s say you only sell one item at a time.

You have a list of items that you sell, and each one has a retail price. When you create the invoice, you select an item (because you have a relationship between your Items table and the Invoice table) and you include the price as a lookup field from Invoices to Items.

But what happens when the price changes? Let’s say you sell a lawnmower to Sam Suburbs on June 1 for $400. In August, you reduce the price to $300, and suddenly Sam’s invoice says that the mower cost him $300! That is incorrect, and will mess up your bookkeeping.

New Field

So instead, you need to create a snapshot field in the invoices table. You click on the table name, then Customize, Fields, Create New Field. Create a new field called “Price Snapshot” which is a Number-Currency field, and at the bottom of the page, at the Snapshot dropdown, select “Item-Price”.

This will cause the item’s price to be copied into the invoice, where it will not change, even if the item’s price actually does change.
Initialize Snapshot

A couple of notes here. First, the price in the invoice will change if you select a different item - like a dishwasher instead of a lawnmower.

Second, if you have existing data and you want to take snapshots of that data, you must click the checkbox saying “Initialize field for Existing Records” when you create the snapshot. You won’t have the opportunity again. If you forget, you need to delete the snapshot field, create a new one, and then click on the checkbox.

Recommendation

Any application that has relationships and is concerned about preserving data as it was entered needs snapshots so the data entered in the past does not change in the future. Specifically, accounting applications are big users of snapshots. When money changes hands, you want to record that amount forever, and that’s what snapshots are good for.

Leave a Reply