Content from Introduction
Last updated on 2025-05-13 | Edit this page
Overview
Questions
- What is a relational database?
- What is a spreadsheet?
Objectives
- Explain the difference between a relational database and a spreadsheet
- Explain the advantages and disadvantages
Introduction
Discussion: Do you use tables and if so, for which tasks?
Spreadsheets, like Microsoft Excel, are used in many areas of application, but they have their limits in many places. Have you noticed any limitations or problems in your work?
Before we create a new database and fill it with information and data, we should learn the basic concept behind all this. What is a relational database or a spreadsheet, why should i use these and how do I organize my data to get the best use out of all these concepts. To understand the starting point where we are coming from, we want to understand the basic idea behind the concepts.
Spreadsheets
Spreadsheets are among the most versatile and widely used tools for
organizing, analyzing, and presenting data. They offer an intuitive
interface based on a grid of rows and columns, where users can input
data, apply formulas, and create dynamic calculations. Tools like
Microsoft Excel and Google Sheets are extremely accessible and powerful,
with functions such as SUM()
, AVERAGE()
,
IF()
and VLOOKUP()
that allow users to perform
both simple and complex data analysis without programming
experience.
In addition to basic operations, modern spreadsheets offer advanced features like pivot tables, conditional formatting, data validation, and even scripting capabilities via VBA or Google Apps Script. These make spreadsheets suitable for a wide range of applications — from budgeting and reporting to data collection and lightweight project management.
One of the major strengths of spreadsheets is their flexibility. Users can easily add or remove columns, merge cells, manually adjust content, and build structures that match their current needs. In many small or medium-sized projects, this flexibility is not just helpful, it’s essential for getting started quickly and without barriers.
However, this flexibility can become a weakness as data grows in
complexity. Spreadsheets are inherently flat — they’re
designed for two-dimensional data. The more users try to represent
relationships between different types of data (such as customers and
orders, or artworks and artists), the more fragile and error-prone the
spreadsheet becomes. Relationships are often created informally, using
copy-paste, repeated values, or formulas like VLOOKUP
,
which are not resilient to structural changes or user mistakes.
As a result, spreadsheets can suffer from: - Data redundancy (the same information repeated in multiple places), - Inconsistencies (typos, outdated copies) - scalability issues (hard to manage as more people work on the same file or as data volume increases).
This is where relational databases come in — not to replace spreadsheets entirely, but to offer a more robust and scalable alternative when the limitations of spreadsheets become apparent.
Relational Databases
Discussion: Do you use databases and if so, for which tasks?
You may have heard of databases and maybe even use them, but do you know how they work and why they are used? Do you know advantages or disadvantages?
Relational databases offer a structured and reliable way to manage complex, interrelated data. Unlike spreadsheets, which are flat and often lack enforced structure, relational databases store data in multiple related tables, each focusing on one specific type of information (e.g., users, products, orders). These tables are connected using primary and foreign keys, which define explicit relationships between them — and ensure data integrity.
In a relational model, information is stored once and referenced when
needed. This minimizes redundancy, improves clarity, and makes data
easier to update, search, and extend over time. For example, instead of
writing an artist’s name next to every artwork, a database would store
that artist in a dedicated Artists
table and simply link to
them via an ArtistID
. This makes changes easy, avoids
duplication, and enables rich queries like “Show all artworks by artists
from France.”
Relational databases are typically queried using SQL
(Structured Query Language), a powerful language designed to
extract, modify, and manage data. SQL commands such as
SELECT
, INSERT
, UPDATE
, and
DELETE
allow users to interact with even large, complex
datasets in efficient and predictable ways.
While traditional database systems like MySQL or PostgreSQL require more technical knowledge than spreadsheets, modern no-code tools like NocoDB bridge that gap. These tools allow users to interact with databases through spreadsheet-like interfaces, while still benefiting from the structure and power of relational data models. In other words, they combine the usability of spreadsheets with the robustness of relational databases.
What is NocoDB?
NocoDB combines exactly these two concepts and allows us to create databases with the clear interface of a spreadsheet. It is a so-called ‘no code database’, which makes it possible to set up and use a relational database without any coding experience. NocoDB also allows us to work collaboratively in a team and even enter and use data without a special account. NocoDB is also open source. This means that we could theoretically set up our own instance and thus create and use our data completely independently of others. It also offers many other options for connecting and utilising our data on the Internet, which we will not go into in this course.
Content from Relational Databases
Last updated on 2025-05-13 | Edit this page
Overview
Questions
- What is a relational database?
- How do keys work?
- What is a normal form?
Objectives
- understand the differences of normal forms
- normalize data in tables
In order to approach the topic as a whole, we first want to look at and understand the individual components in detail. As already mentioned, so-called keys are used to link tables in relational databases and thus make data storage and analysis more efficient. What exactly this means is explained below.
Tables (Relations)
Tables are a fundamental tool for organizing and processing data in a structured way. They consist of rows and columns, much like what you’re used to seeing in spreadsheet programs like Excel. Each column represents a specific attribute or characteristic—such as “Name,” “Date of Birth,” or “Email Address.” Each row represents a single data entry, showing the actual values for those attributes. More precisely, each column would represent a person and contain information about that person. This concept is transferable to all types of objects.
Name | Date of Birth |
---|---|
Thomas Eakins | 25.7.1844 |
Bill Traylor | 1.4.1854 |
Tables provide a clear and easy-to-understand structure that works well for both humans and computers. They allow large amounts of information to be stored in an organized way, making it easy to search, sort, and analyze the data.
The widespread success of tables comes from their simplicity, clarity, and versatility. They can be adapted to many different types of data and serve as an ideal starting point for everything from simple lists to complex data analysis.
Primary Key and Foreign Key
To structure and tidy up tables a little better, so-called keys are used in relational data modelling. What exactly this is used for will be explained in the next step. First of all, we want to understand what this concept actually means, as it is essential for the entire modelling process. These keys are used to create relationships between tables in the database and guarantee that each entry in a table can be uniquely referenced. If we think back to the tables for a moment, each column represents a data record, in our example a person. If we want to make this person uniquely referenceable, we can assign an ID. If this ID is unique and only exists once in the entire data record, it is referred to as the primary key.
Name | Date of Birth | ID (Primary Key) |
---|---|---|
Thomas Eakins | 25.7.1844 | 1 |
Bill Traylor | 1.4.1854 | 2 |
If we now want to collect more information about that some person, that we do not want to store in the same table, we can create a new table and refer to the person with the Primary Key. If we use this key in the new table we talk about a foreign key. This key is therefore used to create a relationship between the two tables, or between two entries in the tables. This allows information to be split into different tables in order to structure them better and more clearly without losing information. The advantages of this and how it is used in relational data modelling need to be clarified next.
Titel | Artist (Foreign Key) |
---|---|
The Artists Wife and His Setter Dof | 1 |
Blue Construction, Organge Figures | 2 |
Key Points
- The primary Key must never be empty
- The primary Key must be unique
- A foreign key must link to an existing Primary Key
Normal Forms
As the amount of information in a table grows, it’s important to keep the data well-structured and manageable. This is where the concept of normal forms comes in - a systematic approach to organizing data so that it remains clear, consistent, and easy to extend.
Normal forms build upon concepts you already know: tables (relations), primary keys, and foreign keys. They help avoid common issues in database design, such as:
-
Data redundancy: storing the same information
multiple times
-
Anomalies: unwanted side effects when inserting,
updating, or deleting data
- Lack of clarity: tables that are hard to maintain or expand
Imagine you want to add new features in the future — new fields, relationships, or more advanced queries. If your tables are well-structured, you can do that with minimal effort. In a simple “all in one table” it can be very difficult to apply changes. Normal forms help create a clean and flexible foundation for your data.
Another key advantage: normalized data makes it easier to work with relationships between tables. The result is a model that is both logically sound and technically efficient.
Key Points
- Avoid duplication of data
- Clear separation of responsibilities (each table has a specific
role)
- Fewer errors and inconsistencies
- Easier to maintain and extend the database
First normal form
To introduce the concept of the First Normal Form, we want to start by exploring the public collection of the Metropolitan Museum of Art (The MET) in New York. Our goal is to create a curated dataset of artworks that include dogs, forming the foundation of a small, themed collection.
We began by extracting a selection of entries that were tagged with “dog”. Here is a part of the raw table we compiled:
Title | Artist | Accession Number | On View Location |
---|---|---|---|
The Artist’s Wife and His Setter Dog | Thomas Eakins (American, Philadelphia, Pennsylvania 1844–1916) | 23.139 | The American Wing, 764 |
The Champion Single Sculls (Max Schmitt in a Single Scull) | Thomas Eakins (American, Philadelphia, Pennsylvania 1844–1916) | 34.92 | The American Wing, 763 |
A Gorge in the Mountains (Kauterskill Clove) | Sanford Robinson Gifford (Greenfield, NY 1823–1880 NY) | 15.30.62 | The American Wing, 761 |
Marie Emilie Coignet de Courson (1716–1806) with a Dog | Jean Honoré Fragonard (French, Grasse 1732–1806 Paris) | 37.118 | European Paintings, 631 |
Blue Construction, Orange Figures | Bill Traylor | 2015.756 | The Met Fifth Avenue in Gallery 773 |
Christ Carrying the Cross, with the Crucifixion | Gerard David (Netherlandish, Oudewater ca. 1455–1523 Bruges) | 1975.1.119A-B | Robert Lehman Collection, 953 |
At first glance, this table seems to contain the basic information we need: title, artist, museum reference number, and viewing location. But let’s take a closer look. What happens if we want to search for all works by the same artist? How do we deal with artworks that appear to be listed more than once? What exactly is stored in the “On View Location” column — is it a department, a gallery number, or both? And what if we wanted to sort or filter artworks by gallery alone?
These questions reveal some issues with the structure of the table. The artist information includes names along with dates and places of birth and death, all mixed in a single field. Some entries are repeated, and the viewing location combines multiple details in a single cell. In this form, the data may be good enough for reading — but it’s far from ideal if we want to work with it programmatically, search through it efficiently, or extend it later.
This is where the concept of First Normal Form (1NF) comes into play. It provides a first step toward cleaning and structuring the data. The core idea is simple: each field in a table should hold one single, atomic value. There should be no lists, no combined information, no embedded structures. Each piece of data belongs in its own place.
To bring our MET dog collection into First Normal Form, we first need to separate combined data into individual fields. That means splitting up the location into department and gallery number, simplifying the artist field to only include the name, and making sure there are no duplicate records. After applying these changes, our structured table looks like this:
Title | Artist Name | Artist Nationality | Artist Birthplace | Artist Birth–Death Years | Accession Number | Department | Room Number |
---|---|---|---|---|---|---|---|
The Artist’s Wife and His Setter Dog | Thomas Eakins | American | Philadelphia, Pennsylvania | 1844–1916 | 23.139 | The American Wing | 764 |
The Champion Single Sculls (Max Schmitt in a Single Scull) | Thomas Eakins | American | Philadelphia, Pennsylvania | 1844–1916 | 34.92 | The American Wing | 763 |
A Gorge in the Mountains (Kauterskill Clove) | Sanford Robinson Gifford | American | Greenfield, New York | 1823–1880 | 15.30.62 | The American Wing | 761 |
Marie Emilie Coignet de Courson (1716–1806) with a Dog | Jean Honoré Fragonard | French | Grasse | 1732–1806 | 37.118 | European Paintings | 631 |
Blue Construction, Orange Figures | Bill Traylor | American | Benton, Alabama | 1853/54–1949 | 2015.756 | The Met Fifth Avenue / The American Wing | 773 |
Christ Carrying the Cross, with the Crucifixion | Gerard David | Netherlandish | Oudewater | ca. 1455–1523 | 1975.1.119A-B | Robert Lehman Collection | 953 |
This version is now in First Normal Form. Each field contains just one value, and combined information has been clearly separated. This not only makes the table easier to understand, but also opens the door to further normalization in the next steps — where we’ll learn how to reduce redundancy and connect related data across multiple tables.
Content from NocoDB Introduction
Last updated on 2025-05-19 | Edit this page
Overview
Questions
- What is NocoDB?
- How does NocoDB connect Spreadsheets with a relational database?
- How can i use NocoDB?
Objectives
- Create a new Base and a table within it
- Add, rename, and configure fields (columns) in a table.
- Choose appropriate data types for different kinds of information.

As mentioned earlier, NocoDB is a no-code database platform that combines the ease of use of a spreadsheet with the power of a relational database. In simple terms, NocoDB provides a web-based interface built on top of a traditional relational database like PostgreSQL or MySQL. The great thing about NocoDB is that you don’t need to understand the underlying database technology to use it—this is one of the key benefits of no-code tools.
With NocoDB, you can create and manage databases through a simple, user-friendly interface, bypassing the need for complex programming. This means that tasks like organizing data, creating tables, and running queries, which would normally require coding, can now be done directly through the web interface. Whether you’re building a database from scratch or working with an existing one, NocoDB makes it easy to interact with your data.
In this tutorial, we’ll focus on using the online version of NocoDB, which you can access here. However, you also have the option to host your own version of NocoDB, either on your local machine or on a server.
Layout
The first step to getting started with NocoDB is to create an account. Once you’ve registered and logged in, you’ll be taken to the NocoDB homepage, where you can begin exploring its features.
On the left side of the interface, you’ll find the main navigation menu, which gives you access to several important options: - General settings to manage your NocoDB account - Team settings for collaborating with others - Integrations to connect external databases - The option to create a new Base
In NocoDB, a Base is like a database, it’s a container that holds your tables and provides additional features for organizing and managing your data.
When you first sign up, NocoDB will automatically create a sample Base called Getting Started. This Base opens by default and helps you get familiar with the platform’s core features.
The central area of the screen is where you’ll do most of your work. NocoDB follows a simple structure: at the top level, you create a Base, and within that Base, you can add one or more tables. Tables are where your actual data lives, and you can customize them with Views to display and filter your data in different ways. We’ll dive into Views in more detail later.
The left-hand menu shows you an overview of all your Bases, while the central window displays the content or settings for whatever you’re currently working on.
Creating a Base
Instead of working with the sample Base, let’s create our own so we can explore NocoDB’s features from scratch.
To get started, click on Create Base, give your new
Base a name (e.g., training_base
), and click
create_base to confirm. You’ve now created an empty
Base, ready to be filled with data.
There are several ways to populate a Base in NocoDB: - Create a new table manually - Import data from a file (such as CSV or Excel) - Connect to an external data source
For this exercise, let’s manually create a new table. Click on
Create New Table, give the table a name (e.g.,
Art_Collection
), and you’ll be taken to an empty,
spreadsheet-like interface where you can define the structure of your
table.
At the same time, you’ll notice that your newly created table now appears under your Base in the left-hand menu. This gives you an easy way to navigate between your tables.
If you want to add more tables later on, simply hover over the Base name in the left sidebar, and a plus symbol will appear, click it to add another table.
Data Fields
Now that we’ve created our table, we need to define its structure by adding fields. Fields are the columns of your table. Each one represents a specific kind of information you want to store for every row (or record) in the table. When you first create a table, NocoDB automatically adds a field called Title. This is a default field and cannot be deleted, but you can rename it and choose a different data type to make it fit your needs:
- Locate the Title column in your table.
- Click on the small arrow next to the field name Title.
- From the dropdown menu, select Edit column.
In the dialog box that opens, you can: + Change the Field Name (for example, rename it to Artwork Title) + Select a Field Type from the list (e.g., Single line text, Number, etc.) + Optionally, add a Description to explain what this field is for — this is helpful when collaborating with others. + Click Save to apply your changes.
Adding a New Field
To add more fields:
- Hover your mouse over the header row in the table, to the right of your existing fields.
- Click on the plus icon (+) that appears.
- In the dialog that opens, enter the Field Name (e.g., Artist).
- Choose the appropriate Field Type.
- Click Create Column to add the field to your table.
You can repeat this process to add as many fields as you need.
Callout: Data Field Types
When creating or editing a field, NocoDB offers a range of data types to choose from. Selecting the right type helps keep your data consistent, makes it easier to sort or filter, and ensures others know what kind of input is expected.
Here are some of the most commonly used field types:
- Single line text: For short text entries like names or titles.
- Long text: For longer descriptions or notes.
- Number: For any numerical values. You can define decimal places and minimum/maximum ranges.
- Date: For calendar dates. You can also include time if needed.
- Dropdown: Lets you define a fixed set of options from which users can choose. Useful for categories like Genre, Location, or Status.
- Checkbox: A simple yes/no or true/false value.
- Email / Phone / URL: Special text types that validate the input (e.g., only valid email addresses can be entered).
- Formula: Calculates values based on other fields, similar to formulas in spreadsheet software.
- Relation: Links this table to another table in your Base — useful when working with relational data.
Exercise: Creating your own table
Now that you’ve learned how to create a Base and add tables and fields, it’s time to apply what you’ve learned.
- Look at the example from the previous episode.
- Create a new, empty table for it, either in your existing Base or in a new one.
- Choose at least 5 informations and create fields using different field types (e.g. Text, Number, Date, Dropdown, Checkbox).
- Create one field for an image of the artworks
- Name your fields based on what kind of data you expect (e.g. Title, Author, Year, etc.).
- Try editing a field type or renaming a field.
- Explore freely: test options, click around, and get familiar with the interface.
You don’t need to enter data yet — just focus on setting up the table structure.
Content from Working with data
Last updated on 2025-05-15 | Edit this page
Overview
Questions
- How do I import data in NocoDB?
- How do I filter data?
- What kinds of analysis are supported in NocoDB?
Objectives
- import data from csv
- explore foreign data with filter and sort functions
In this episode, we’ll take the first steps toward exploring and analyzing data in NocoDB using two tools: Filters and Sorting. Before we do that, we need to import some data to work with.
Importing a CSV File
We’ll begin by importing a dataset in CSV format. CSV (Comma-Separated Values) is a common file format used to store tabular data. If not already done, please download the data here.
Open the Base where you want to import the data, in our case it can be the Sample_base.
Inside the Base, click on Import Data.
In the dialog that appears, select the CSV option.
-
Choose your CSV file by either:
- Clicking Upload File and selecting the file from your computer, or
- Dragging and dropping the file into the upload area.
- The Field of The Dropdown Menu should be UTF-8, if not, open the dropdown and select it.
Click Import files
Now you can choose which columns you want to import. Leave everything checked and click Import
Your CSV file is now imported into NocoDB and appears as a new table. You should see your data in a spreadsheet-like view, ready to be cleaned and explored.
Adjust Field Types
After importing data, it’s a good idea to review the field types for each column. NocoDB gives the Field Type “Single line text” after importing data, but this can lead to different problems and limitations. Choosing the right field type helps NocoDB understand how to handle your data, and unlocks useful features for filtering, sorting, and analysis.
Exercise: Changing field types
Change the field types of our table according to the data in each column. Which field types but single line text could be useful for the Department or Medium column, where the number of different entries are limited?
Taking time to set this up now will make exploring and further collecting of data much easier.
Filtering Data
Filters allow you to narrow down the data in your table so that you only see rows that match certain conditions. This is especially helpful when working with large datasets or when you want to focus on a specific subset of records. It also gives you the opportunity to get a first impression of the data you have.
To apply a filter:
- Click on the Filter icon (funnel symbol) at the toolbar.
- A filter menu will appear. Here you can create only one filter or a filter group. For the beginning we want to create a single filter. Click on Add filter
- First, you will see a field where you select a column to filter by, an operator to apply and a value to use for the filter. (Different field types will give you different operatos you can choose)
Example:
Filter by Year
→ greater than →
1950
Filter by Object Name
→ is equal →
Print
Grouping Data
Another useful feature for exploring data in NocoDB is Grouping. This allows you to organize your table into logical sections based on the values of a specific field. Grouping helps you quickly spot patterns, compare categories, and get a better overview of how your data is structured.
To group your data:
- In the toolbar at the top, click on the Group icon.
- Choose the field you want to group by, for example:
Department
Culture
Medium
Accession Year
- NocoDB will automatically reorganize the view and display your records grouped by the selected field.
Each group can be Collapsed or expanded to hide or show its rows and to se the related entries. In a next step you can create a subgroup by doing the steps again. With this you can get an even better expression of your data and explore for example.
Callout: Field Types and grouping
Grouping works especially well when your field is a Single Select, because the values are already clean and consistent. If you group by a free-text field, make sure the entries are standardized to avoid duplicate or inconsistent group names (e.g., “oil painting” vs. “Oil Painting”).
Sorting Data
Sorting lets you change the order in which records appear, for example, to view the oldest items first or group similar values together.
To sort your data:
- Click on the Sort icon from the toolbar.
- Choose the field to sort by and select:
- Ascending (A–Z or 0–9), or
- Descending (Z–A or 9–0)
- Add multiple sort levels if needed (e.g., by
Year
and then byArtist
).
Exercise: Exploring data
Use the Filter, Sort and Group functionality in NocoDB to answer the following questions:
- How many different departments are there and how many works of art are in each department?
- How many works of art were added to the Metropolitan Museum’s collection after 1950?
- Do objects exist that contain one of the tags Women, Battles, Cats or Ships and are attributed to the ObjectName Print?
Content from Views
Last updated on 2025-05-19 | Edit this page
Overview
Questions
- Which views are given?
Objectives
- create a new view
- share a view
In NocoDB, Views are different ways to display and interact with the records in a table. While the underlying data stays the same, each view gives you a unique perspective on that data, optimized for specific tasks like editing, sorting, filtering, collecting input, or tracking progress.
Using views allows you to:
- Customize how information is presented without altering the table’s
structure
- Focus on a specific subset of data using filters and sorting
- Share only selected information with collaborators or the
public
- Collect structured input through web-based forms
Each view type serves a different purpose and supports different workflows. For example, a Grid View is great for editing records directly, while a Form View is useful for collecting new entries from external users. A Gallery View emphasizes visual content, and a Kanban View is ideal for process tracking.
By combining different views, you can adapt the same dataset to a wide range of use cases, from internal team collaboration to public engagement, from raw data entry to polished overviews. All views are created by clicking on the table you want to get a new view of in the left side-bar. There you click on the little arrow, next to ne tables name. If already done, you can see all views you created before. If you want to create a new view click Create View. This will open a dropdown where you choose which view type you want to create.
Grid
The first view we want to look at, is the Grid. This view is the standard view in NocoDB you see every time you create a new table. It can be very helpful to create new views for this. Each Grid View can have its own filtering, sorting, and column visibility settings.
Grid Views are also useful for customizing the table display for different audiences. For example, a team working on content might only need to see titles and publication status, while another team handling logistics may require technical fields and internal notes. With multiple views, each team can work efficiently with the same dataset in a way that suits their workflow.
Additionally, views can help maintain focus by hiding irrelevant columns, making it easier to review or edit records. They can also act as templates for repeated processes, such as quality checks, monthly reviews, or report preparation, allowing users to quickly switch between predefined perspectives.
In short, multiple Grid Views offer a powerful way to explore and work with your data from different angles, without cluttering your interface or losing time repeatedly adjusting filters or layouts.
Form
In collaborative settings, it’s often useful to collect data from people who don’t have direct access to your database or who shouldn’t have access to existing data. This is where Form Views in NocoDB come in. They allow you to design a custom form that others can fill out, and their submissions are automatically added as new records to a table of your choice. This also has the advantage that data entry is less vulnerable and fields can be clearly defined and explained.
This is ideal for tasks such as:
- Collecting survey responses
- Enabling structured data entry
- Letting external collaborators contribute without viewing sensitive data or having an account
Creating a Form View
- Look for the table where you want to collect new data, in our case it is the the METObjects table.
- In the left sidebar, open the dropdown with the small arrow, there you cann see all views you created.
- Click “Create View” and then select “Form” from the list of view types.
- Give the form a name (e.g.,
Art_Submissions_Form
) to help you identify it later.
You will now see the form editor interface, which displays all fields of your table in a vertical, form-like layout.
Customizing the Form
NocoDB gives you several options to adjust how the form behaves and looks. Most of these customization options are found in the right side-bar:
- Show or hide fields: Use the toggles next to each field to include only the ones relevant for form respondents.
- Reorder fields: Drag and drop fields into a logical sequence to improve usability.
- Appearance Settings: You can change the color or hide the Branding.
- Send Email: It is possible to get an Email notification, if someone filled out the form
More customization can be done, if you click on the fields in the form directly. Here you can:
- Change the field name
- Write explaining text
- Select, if the field is obligatory
- Define conditions for the field
From here you can use the form for yourself to enter new data. This can be helpful if you have to enter complex data and want to minimize the risk of doing mistakes. The other possibility is to share this view, like we did before, to give others the possibility to enter new data.
Sharing the Form
If you click Share at the top right corner and Enable Public Viewig, you will get the link to share your form. Like mentioned before you will get different settings for different views. The two new options you get are the survey-mode, where you will not get the form as a whole directly, but question for question and the option to Enable Pre-fill. All responses submitted through the form are automatically added as new rows in the table the form is linked to. They appear in real time and can be reviewed, edited, filtered, and sorted just like any manually entered record.
Exercise: Creating a form
In this task we want to create a form for adding data into our example table from Lesson 3. For this, create a form-view for this table and use it zu submit the data from the lesson or search for new data you want to use in the Met-Collection. Search for a few artworks in the Met-Collection and safe the images on your computer, to submit these with the form aswell.
Gallery
The Gallery View displays each record as a card—ideal for image‑rich or visually oriented datasets. With the new data in our table we can display the artworks in this way. Like before, click Create View and Gallery. Enter a name for the gallery and choose the field with the image.
Creating a Gallery View
-
Open your table.
- Click View dropdown → Create View
→ Gallery.
- Name the view (e.g.,
Art_Thumbnails
) and click Create.
Customizing the Gallery
-
Primary image field: Select an Attachment field for
the card thumbnail.
-
Fields on cards: Toggle which fields (title,
artist, year) appear on each card.
-
Layout style: Choose between compact or expanded
card sizes.
- Filter & sort: Apply filters to limit which cards show, and sort order to control their arrangement.
Kanban
The Kanban View turns your data into draggable cards organized by a Single Select field—perfect for tracking status or progress.
Content from Collaborative Work with NocoDB
Last updated on 2025-05-19 | Edit this page
Overview
Questions
- What possibilities are given for collaborative work?
- How can I build a team?
Objectives
- invite members with and without an account
- assign different rights
- create a form for inserting new data
NocoDB is not just a tool for individual work, it is also built to support teams and collaborative projects. Whether you’re managing a shared research dataset, working on a team-based digital humanities project, or simply co-organizing information with colleagues, NocoDB provides powerful, yet easy-to-use features for collaborating directly within the database environment.
In this section, you will learn how to share access to your projects, manage permissions effectively, and create user-friendly forms to collect data from others — even from those who don’t have access to the database itself.
Sharing a Project (Base)
In NocoDB, each project or collection of data is organized in what’s called a Base — similar to a standalone database. When working with others, you can choose to share an entire Base with your team members, collaborators, or external partners.
To begin sharing:
- Go to your main NocoDB dashboard, where all your Bases are listed.
- Click the Base you’d like to share.
- In the top navigation bar click Members
- With the Add Members button, you are now able to invite new members with their email.
- You can invite as much users as you want in one step
- Additional to inviting you need to define a role
- Click Invite to Base to finish the process This role feature is particularly helpful in academic or institutional settings, where access needs to be granted to different people with varying responsibilities and technical backgrounds.
Managing Permissions
Once you’ve shared your Base, it’s essential to control who can do what. NocoDB allows you to assign different roles to each user. These roles determine how much control they have over the data and structure of the Base.
Callout: Roles
There are different roles with different rights in NocoDB:
Owner: The highest permission level. Owners have all admin rights and can also manage access and delete the entire Base. There can be multiple owners, depending on the setup.
Creator: Creator have full administrative rights, they got the same rights like the Owner, without deleting the base.
Editor: Editors can add new records, edit existing entries, and interact with the data itself. However, they cannot change the structure of the table (e.g., adding new fields) or delete the Base. Perfect for data entry or team members updating records.
Commenter: The Commenter cant enter data into the base and can not change anything. He can comment existing records.
Viewer: This role allows users to only view the data. They cannot make any changes, delete records, or add anything new. Ideal for stakeholders who need oversight, but shouldn’t modify anything.
No Access: This role removes a person’s previous rights, which means they no longer have access to the base.
To assign or change a user’s role:
- Go to “Members” for your Base.
- Find the user in the list or add them by email.
- Choose the appropriate role from the dropdown menu next to their name.
Using these roles effectively helps keep your data safe, your team focused, and your workflow organized.
Sharing Your Base
In some situations, you may want to share the content of a Base with others — without giving them the ability to edit or change anything. For example, you might want to publish a dataset so that colleagues, students, or the public can explore the information, but not accidentally modify it.
NocoDB makes this easy by allowing you to generate a read-only shared link for any Base. This creates a live, web-based version of your data that anyone can view — no account required. The rights are the same as for the Viewer
To share your Base as a read-only view:
- Navigate to the Base you want to share.
- Click on the “Share” button located in the top-right corner.
- Form here you have the option to Enable Public
Viewing or Enable Public Access
- Public Viewing will share only the specific view of one table you choose. Different Views will give you different options. We will look at these later.
- You can set Custom URL or a Password if you want to control the access
- Public Access shares the whole base with all tables and views
- A link will be generated. You can copy and share this with others.
People who visit the link will see the Base as a web page. They can:
- View all tables and records
- Use filtering and sorting to explore the data
- Switch between views, if multiple exist
- Copy the base into the own environment
However, they cannot:
- Add, edit, or delete any data
- Access settings or structural elements of the Base
This option is a great way to promote transparency, enable lightweight collaboration, or simply allow others to explore and work with your data on their own terms. Also it can be used for the publication of a database.
Content from APIs
Last updated on 2025-05-19 | Edit this page
Overview
Questions
- What advanced options does NocoDB offer?
- What is an API?
- How can I use the API from NocoDB?
Objectives
- explain the basic idea of APIs
- explain the basic idea of a webhook
- use the “Get-Method” through the Swagger-API
NocoDB is not just a user-friendly no-code platform for working with data — it also includes powerful tools for automation and integration. Two of the most important features in this area are APIs and Webhooks.
APIs
An API (Application Programming Interface) is a standardized way for different software applications to communicate with each other. You can think of it like a digital menu: One system can ask another system for certain data or tell it to perform an action.
In the case of NocoDB, this means that you (or another application) can access your tables from outside the platform, for example, to retrieve data for a website, update records from a form, or automatically insert new entries from another tool.
Why is the NocoDB API such a big deal?
The built-in API turns NocoDB into far more than just a spreadsheet-style tool. With it, you can:
- connect your tables to websites, apps, or reporting
dashboards,
- create automation workflows that respond to updates or
triggers,
- integrate NocoDB into existing IT infrastructure,
- or even develop custom tools that interact with your database in real-time.
This openness and flexibility make NocoDB a powerful backend for both small projects and professional systems. If you use a classic database on your server you need to create the APIs aswell and write code for them. NocoDB creates the APIs automatically for every table and all of your data.
Swagger API
Every base (database) and table in NocoDB comes with its own REST API. This means external systems can read, create, update, and delete records via HTTP — the same protocol that websites use.
Even if you’ve never worked with code before, NocoDB makes it easy to try out these features using a built-in tool called Swagger UI.
What is Swagger?
Swagger (also known as OpenAPI) is a framework for documenting and testing APIs. NocoDB includes a Swagger interface that shows you:
- all available API endpoints (e.g.,
GET /Art_Collection
),
- which methods (GET, POST, PUT, DELETE) are supported,
- what data you need to send or receive,
- and what each request will return.
What makes it really useful: you can interact with the API directly in your browser — no setup, no coding required.
Step-by-Step: Exploring the NocoDB API with Swagger
-
Open your base in NocoDB.
- Click the three-dot menu (⋮) next to the base
name.
- Choose “API Docs” — this will open the Swagger
interface.
- You’ll see a list of available endpoints for your base, such as:
-
GET /Art_Collection
– get all records
-
POST /Art_Collection
– add a new record
-
DELETE /Art_Collection/{id}
– delete a specific record
-
📘 This view gives you full documentation and testing access at the same time.
API Code Snippets
NocoDB also helps you generate ready-to-use code snippets for various programming languages. This means you don’t need to write any code yourself — you can just copy and paste.
How to Copy API Snippets
Open the API Docs for your Base (see above).
Select an API action (e.g.,
POST /{table}
to add a new record).Scroll to the bottom of the endpoint description.
Click on the “Code” tab.
-
Choose a language from the dropdown — options include:
- cURL
- Python
- JavaScript (Fetch API)
- Node.js (Axios)
- Shell
-
Copy the generated snippet and try running it in a simple environment like:
- A Python file (
python script.py
) - An online code sandbox like Replit or JSFiddle
- Your terminal, for cURL commands
- A Python file (
Webhooks (Intro & Idea)
Webhooks are the reverse of APIs. Instead of you requesting data from NocoDB, NocoDB sends data to you, or to another app, when something happens.
For example you could:
- Notify a Slack channel when a new form is submitted
- Trigger a script when a new record is added
- Send email notifications for updates
How to Create a Webhook
- Open your Base settings.
- Go to the “Automations” section and choose “Webhooks”.
- Click “Create Webhook”.
- Define:
- The event (e.g., “Row Created”)
- The table it should apply to
- The URL that should receive the webhook (you can test this with webhook.site)
- Save the webhook and test it by adding or updating data.
The API and Webhooks are powerful tools that allow you to connect NocoDB to the wider digital ecosystem. You can:
- Automate tasks
- Build integrations with other tools (e.g., Google Sheets, Slack, Notion)
- Add dynamic content to websites or apps
- Create automated workflows based on data changes
Even if you’re not ready to use these tools now, knowing they exist opens the door to new ideas. And with NocoDB’s beginner-friendly interfaces like Swagger and pre-generated code snippets, it’s easier than ever to try them out — no coding background required.