Author: Dominika Florczykowska

Dominika is a Python software developer. She graduated from the Warsaw University of Technology with a degree in computer science. At Vertabelo, she creates content as a technical writer. In her free time, she runs, practices yoga, and learns foreign languages.

Let's Create a Database Design for a Library System!

Learn how to design a database from scratch for a library system. Try your hand at database design! Are you interested in a job as a database designer? Imagine that we are planning to develop a software application to manage a local library. You need a library database model! The database designer needs to gather business requirements from the client and decide what data needs to be stored and how.

Vertabelo Database Designer: The New UI Design and UX Improvement, Part I

Have you already noticed the Vertabelo Database Modeler has a new look now? The entire graphic design changed significantly at the end of January. Over the past few years, we have been observing how the previous interface worked and paying great attention to the experience of our users. Equipped with the knowledge we have gathered, we developed a completely new graphic design of our ERD tool and implemented several ergonomic improvements to individual functional elements.

How to Work With Dictionary Data in a Database

In dictionary tables, you often encounter the following column pattern: An artificial primary key (e.g., id of type integer). An artificial alternative key (e.g., code of type char(x)). Real data (e.g., name of type varchar(y)). This pattern can also be found in many other systems (such as Jira or Recurly). In our example, both tables have a numeric column id, which is a primary key, a code of type char, and real data, such as name or description field.

How to Store Temporary Data: Multi-Page Forms

How do you solve the problem of storing temporary data in a database? Imagine a situation when you fill in a multi-page form. What happens if you pause and come back in a few days to finish it? It would be great if the data is saved, and if you can take it up right where you left it. However, this brings up a question: where should this temporary data be stored?

How to Define the Order of Items in a Database

What do you do if your data needs to have a defined order? The database itself does not guarantee the order of records unless you explicitly use an ORDER BY clause. However, you can always use a numeric field to define the order in which the items should be displayed. To avoid duplicate positions, use a UNIQUE constraint on that field. In the example below, the database stores music albums. Each song on an album has its position that can be set in the seq field of the album_song table.

How to Model Snowflake Materialized Views in Vertabelo

Cloud technologies are becoming more and more popular. Recently, Vertabelo added support for the Snowflake database. An additional feature, much awaited by our users, was support for materialized views in Snowflake. We are happy to announce that you can now model materialized views in a Snowflake database using Vertabelo. What Is a Materialized View? Materialized views are different from simple views. While simple views allow us to save complicated queries for future use, materialized views store a copy of the query results.

How to Work With Historical Data: Use Slower Storage for Historical Data

Fast storage is expensive. However, you can reduce costs by using a separate, slower disk space for tables that are not accessed very frequently. Examples include those with historical data. Below, you can see a database diagram with the historical account plans in a separate table. account_plan_history can be placed in a tablespace that uses slower storage, while more frequently accessed tables use separate, faster storage space. Note: if you use this solution, various objects related to these tables (such as indexes or BLOB data) must also be placed in the slower disk space.

How to Work With Historical Data: Immutable Data in a Database

Often, it is the case that certain data should no longer be modified once it reaches a particular state. Good examples are completed orders and issued invoices. In some cases, it is even considered a crime to modify such data. On one hand, we need to ensure immutable objects do not depend on operational data (for example, the current product catalog). On the other hand, they should be protected from accidental modification.

How to Work With Historical Data: Log Data Changes

It is important to log information about changes in a database. We should track who introduced the change, when it happened, and what was done. This way, even if the operational data does not exist anymore (for example, because the record has been deleted), we can still recover a trace of the user's activity. How Should the Logs Be Stored? First of all, logs should be stored in a separate table (or tables).

What Is a Foreign Key?

What is a foreign key constraint? Why is it important in relational databases? Find out all about foreign keys in this article. A foreign key is a concept that is often used in relational databases. It is a way to create a link between two different tables. A foreign key is a field that refers to another table‘s primary key. Look at the example below: each player is a member of one team.