Switch to: V11V10V9V8V7V6V5

Valentina Database Link

Working with tables, a database designer often establishes links between two or more tables.

Starting with Valentina 2.0 the Valentina Database Model extends the traditional relational model by adding the new abstraction: Link.

The adding of the Valentina Link (VLink object) means that developers can use both API and SQL commands to create, delete and modify links between tables, as well as link/unlink records, use links for joins and other database operations - in a new and highly efficient way.

Links are very easy to understand and could probably be considered a reincarnation of links from The Network Database Model.

It is easy to see that links must provide the following features:

  • Each link has an unique ID.
  • Each link has a unique name in the scope of the database. Link names and table names are in the same scope.
  • The database knows about each of its links.
  • Each table knows about each of its links.
  • You can access a table link by name or index.
  • Each link knows what tables it links and how.

Valentina currently offers three kinds of links between 2 tables that implement the VLink2 interface:

  • Link Terminology - Discusses such terms of the Link abstraction as Branches, Power, Owner, …
  • Valentina Link Diagrams - Explains how three kinds of Valentina links are shown on diagrams.
  • Pointer Links - Discusses the pointer nature of Foreign Key and ObjectPtr links.

During development developer can change the type of a link to better fit its task-specific requirements. This section describes how to change one kind of link into another using Valentina's built-in refactoring features.