powered by

Managing my data

Data Modelling

Updated Aug 27, 2025
The dynamic data model is the ultimate core to the Anythink platform, this is where a customer can define the entities (or data tables) that are key to business functionality. Here a you can choose between fields that they would like to store for a given entity in their business.

You can choose from standard field types like text (including rich text), number, boolean (true/false), date and timestamps to more advanced custom types like json structures and geo coordinates (which perfectly integrate with our search functionality and map display functionally within Anythink).

Beyond standard types relationships with other entities can be defined (1:1, 1:many, many:1, many:many and dynamic which links the record of one entity to another). Files can be attached via a file upload function, which will store files in the file manager with a CDN reference, users can select allowed filetypes including images, PDFs, Word Documents, Excel Spreadsheets. Users can also be assigned creating a direct user relationship.

In the data modeller, it’s also possible to set whether the field is required, has a default value or is publicly searchable - this means that whilst all fields are indexed in the search engine to be discovered by the top bar search, any field can be selected to appear in the public search endpoint - we default to the field not being publicly searchable, and allow a user to configure it’s visibility.
For example, this allows you to store key information, perhaps for a client like email addresses, VAT numbers, bank information on a single entity, you can then find this information via top bar search, but this information can be restricted from appearing in public search used by a 3rd party app where you may want to return just the name and address with the private fields restricted.

Display configuration can also be set on a field to set display type (input, rich-text, select, checkbox, radio, short date, long date, timestamp, json, geo, relationship, dynamic reference, file, user), prefix, suffix or placeholder.

Row-level security can also be enabled for a given entity.

Data Types

Updated Aug 27, 2025
Anythink supports a wide range of standard database data types, and some custom ones designed to make it really easy to manage specific data types within your business.

Text (Small & Large)

Text is perhaps the standard most basic input type, we support two types of text fields "small text" and "large text".

Small text is stored as a varchar, this allows you to store up to 255 characters. You can display small text as a standard input, or as a multi-select from a set of options that you define.

Large text is stored as a TEXT field and allows you to store larger text content (up to 65,535 characters), and also supports rendering as rich text and markup.

Numbers

Three number types are available:

  • Integer - Whole numbers from -2,147,483,648 to 2,147,483,647

  • Big Integer - Large whole numbers from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

  • Decimal - Floating point numbers with configurable precision for financial calculations and measurements

Boolean

Simple true/false values, displayed as checkboxes or toggle switches. Perfect for yes/no questions, feature flags, or status indicators.

Date & Time

  • Date - Calendar date picker for selecting specific dates

  • Timestamp - Complete date and time with timezone support for precise temporal data

Advanced Types

JSON - Store complex nested data structures, arrays, and objects. Ideal for configuration data, metadata, or flexible schema requirements.

Geo Coordinates - Latitude and longitude pairs that perfectly integrate with our search functionality and map display functionality within Anythink. Enables location-based queries and geographic visualisations.

Relationships

Beyond standard types, relationships with other entities can be defined:

  • One-to-One (1:1) - Each record links to exactly one record in another entity

  • One-to-Many (1:many) - One record can link to multiple records in another entity

  • Many-to-One (many:1) - Multiple records link to one record in another entity

  • Many-to-Many (many:many) - Records can link to multiple records bidirectionally

  • Dynamic Reference - Flexible linking that can reference any entity type

File Management

Files can be attached via a file upload function, which stores files in the file manager with CDN reference for fast global delivery. Configure allowed file types including:

  • Images - JPG, PNG, GIF, WebP with automatic optimisation

  • Documents - PDFs, Word Documents, Excel Spreadsheets

  • All Files - Any file type for maximum flexibility

File uploads include automatic virus scanning, size limits, and public/private access controls.

User Assignment

Users can be directly assigned to records, creating a direct user relationship. This enables ownership tracking, access control, and workflow assignments within your application.

Connecting things

Updated Aug 27, 2025
Relationships are the foundation of powerful data modeling, allowing you to connect different entities together to create rich, interconnected data structures. Think of relationships as the "glue" that binds your data together, enabling you to model real-world scenarios where different pieces of information naturally connect.

Why Use Relationships?

Instead of duplicating data across multiple entities, relationships allow you to:

  • Eliminate data redundancy - Store information once and reference it everywhere

  • Maintain data integrity - Update information in one place and see changes everywhere

  • Create powerful queries - Search and filter across connected data

  • Build complex applications - Model real-world scenarios like customers with orders, posts with comments, or users with roles

Relationship Types Explained

One-to-One (1:1)

Each record in Entity A connects to exactly one record in Entity B, and vice versa.

Example: User ↔ Profile

  • Each user has exactly one profile

  • Each profile belongs to exactly one user

When to use: When you want to split data into separate entities for organization, security, or performance reasons.

One-to-Many (1:Many)

One record in Entity A can connect to multiple records in Entity B, but each record in Entity B connects to only one record in Entity A.

Example: Customer → Orders

  • One customer can have many orders

  • Each order belongs to one customer

When to use: The most common relationship type - perfect for hierarchical data like categories with products, authors with books, or companies with employees.

Many-to-One (Many:1)

Multiple records in Entity A connect to one record in Entity B. This is essentially the reverse perspective of One-to-Many.

Example: Orders → Customer

  • Many orders can belong to one customer

  • Each order has one customer

When to use: When you're viewing a One-to-Many relationship from the "many" side.

Many-to-Many (Many:Many)

Records in Entity A can connect to multiple records in Entity B, and records in Entity B can connect to multiple records in Entity A.

Example: Students ↔ Courses

  • One student can enroll in many courses

  • One course can have many students

When to use: When both entities can have multiple connections to each other. Common examples include tags, categories, permissions, or any scenario requiring flexible associations.

Dynamic Reference

A flexible relationship that can point to records in any entity type, determined at runtime.

Example: Comments → (Posts, Products, Users, etc.)

  • A comment could be attached to a blog post, product review, or user profile

  • The target entity type is stored dynamically

When to use: When you need maximum flexibility and don't know in advance which entity types will be connected.

How Relationships Work in Practice

Setting Up Relationships

  1. Choose the relationship type based on your data model
  1. Define the connection - which entities connect and how
  1. Configure display options - how related data appears in your interface
  1. Set permissions - who can create, view, or modify relationships

Querying Related Data

Anythink automatically handles the complexity of joining related data:

  • Search across relationships - Find customers by their order status

  • Filter by related fields - Show products in specific categories

  • Aggregate related data - Count orders per customer, average ratings per product

Performance Considerations

  • Indexed relationships - Anythink automatically optimizes relationship queries

  • Lazy loading - Related data loads only when needed

  • Caching - Frequently accessed relationships are cached for speed

Best Practices

Planning Your Relationships

  1. Start with your core entities - Identify the main "things" in your system
  1. Map real-world connections - How do these things relate in reality?
  1. Consider data flow - How will users navigate between related information?
  1. Think about permissions - Who should see which relationships?

Common Patterns

  • User Management: Users → Roles → Permissions (Many-to-Many)

  • E-commerce: Categories → Products → Orders → Customers (Mixed relationships)

  • Content Management: Authors → Posts → Tags → Comments (Mixed relationships)

  • CRM: Companies → Contacts → Deals → Activities (Hierarchical relationships)

Avoiding Common Pitfalls

  • Don't over-normalize - Not every piece of data needs its own entity

  • Consider query patterns - Design relationships around how you'll actually use the data

  • Plan for scale - Some relationship patterns perform better at large scale than others

  • Keep it intuitive - Your data model should make sense to users who will work with it

Relationships transform simple data storage into powerful, interconnected systems that mirror the complexity of real-world scenarios while maintaining simplicity for end users.

Related Articles

Discover more content related to managing my data.