How the Data Section Works
The first step in building your app is defining your data.
You do this in the Data section of your builder, which gives you tools to define the data your app will use and store that data in a database.
You can access the data section at any time by clicking the "DATA" tab in the top left of the builder:
Objects and Fields
Knack uses objects and fields to define your data.
You'll create fields for each piece of data you want to store and manage. For example, if you wanted to build an app to manage Contacts, you may include fields for name, email, and phone number.
These fields are grouped into objects. Think of an object like a spreadsheet, and each field like a column in that spreadsheet.
Here’s an example of a Contact Directory app, with a Contacts object selected for editing:
All your objects are listed on the left. Click an object to edit it. Add a new object with the "ADD" button.
The active object's fields are listed to the right. Click a field to edit and format it. Add fields with the menu above the field list by clicking on the type of field you want to add (like text or number).
The app’s user roles are stored here. They work similarly to other objects, but include special fields for managing user logins like Name, Email, Password, User Status, and User Roles. User roles are optional and may not be needed if you don't need your users to log in to access your app.
Connecting Objects Together
Most apps will need more than one object. When this is the case, these objects will likely be connected to one another.
Connections define how the records in one object will relate to records in another object. Here are some examples of different connections you can create:
Many employees can be connected to one company.
One student can be connected to one application.
Many managers can be connected to many projects.
Each object’s connections are listed in the right column:
When you add a new connection, it creates a special connection field in that object.
These fields can be used like any other field throughout your app. If you add a connection field to a form, it will operate as a "look-up" where you can select a record to connect to.
Connections will open up powerful functionality you can add to your apps:
Displaying parent-child records in your interface. For example, click on a company and view all the employees connected to that company
Running formulas to find the totals and averages of child records. For example, add up all the employee salaries for each company.
Showing records connected to the logged-in user. For example, have each company log in and just view the employee records connected to their company, rather than viewing all the employee records stored for every company.
See more about connections here.
What Should My Objects Be?
For most applications, defining the objects is very straightforward. If this is less obvious here are some good ways to think about your objects:
Think about your fields. It can help by starting from the bottom first. List all the fields your app will need to display and manage, and then group them into the most obvious objects.
Think about your pages. If you're adding forms, what inputs will those forms contain? If you want to display a table of records, what will the columns be? Ask yourself if each of the inputs or columns sound like they belong to the same group. If not, you may want to add them to different objects.
Think about single versus plural. If you have something that can be plural grouped alongside something that is single, then you may want break up the plural items into a separate object. For example, let's say you want to track a company (single), but each company can have multiple employees (plural). In this case, it makes sense for employees to be a separate object that would connect to the company.
Think about repeating data. If you are repeating the same information over and over again in your records, you may want to separate that info into its own object and connect it to your original records instead. This way, you will only have to update it once.
Working With Records
Once you add your objects and fields, you can start to store records for each object.
Each record will be actual data based on the fields you added for that object. For example, if you added an image field, you'll be able to upload an image for each record.
Click on the Records tab for each object to view all the records currently stored:
Edit each record by clicking directly on the field you'd like to change.
Click the "Add Record" button at the top to add records manually.
The top bar contains options to import or export records, run a batch update, or delete records.
How to Populate Records in Your App
Records can be added to the database directly in the builder by clicking the "Add Record" button or the "Import" link right next to it (see above). Records can also be added through the live application using forms.
Note that some apps make sense to populate directly through the builder:
The primary purpose of these apps is to display or search records, so you can add those records directly to the database.
Other apps will add records when your users fill out forms in the live application:
Parents filling out a form to register children for a camp
Job hunters filling out a form to apply for open jobs
Employees filling out forms to complete a project
These apps are using forms to add and manage records, so much of the database will be populated by the app itself.
Importing From Spreadsheets
You can speed up your database population by using spreadsheets to import records.
You can import records into an existing object or to create a new object.
To update an existing object, select the object from the left-hand menu, then click the "Records" tab and the "Import" link in the top bar:
To add a new object with an import, click on the "+ADD" button above the list of objects, then the ‘Import a spreadsheet tab:
Click here for more on importing records.
User records are special records that represent users who can log in and access your app.
A user record has required fields for Name, Email, Password, and others that make it possible to manage logins. Otherwise, they operate just like normal objects: you can add additional fields and connect them to other objects.
Click the "Add" button to active user logins:
Click here for more on users.
How Will My App’s Pages Work With My Objects and Fields?
Your app’s pages are what your users see to view and update the records in your database. Each page is made up of views: visual elements like tables, forms, and searches.
When you add a view you’ll select which object that view works with. All the fields from that object will then be available to add to the view.
For example, if you added a table to display Company records, you could add any of the Company fields as columns in that table.
Click here for more on building your app’s pages.