Avoid duplicate data in no-code tables: Keep current client contact on the client record, not in projects or invoices.; Store invoice addresses at issue as labelled historical snapshots if needed.; Link records instead of copying editable values to prevent inconsistency.
Image: No-Code Business Guide

Data Modelling

Part of No-code data modelling

Avoiding repeated data in several no-code tables

Find conflicting copies of a fact, give current values one owner and distinguish linked displays from historical snapshots.

When the same current fact is editable in several tables, give it one authoritative home and display it elsewhere through a relationship where the builder supports that.

Keep a separate copy when it has a different purpose, such as recording what was known when a transaction occurred.

Key Principles for Data Integrity in No-Code Systems

Single Source of Truth
One authoritative home for editable facts
Historical Snapshots
Retain labelled values when tracking past states
Relationship-Based Display
Show data via links instead of duplication
Change with Caution
Test impacts before replacing fields

Find copies that can disagree

Imagine Clients, Projects and Invoices tables. If a client's current contact number is typed into all three, a change can leave three answers to “what number should we call now?”. Keep the current number on the client record and link the projects and invoices to that client. A project screen can then display it without a second update.

An invoice address recorded at issue may serve another purpose. If the business must show which address was used on that invoice, retain it as a labelled historical value. Updating the client's current address should not quietly change the meaning of the earlier document. Agree which historical values matter; do not snapshot every field by default.

Give each repeated value a reason

ValueQuestion to askLikely treatment
Current client contact detailWhich record owns updates?Maintain it on the client; display it through the relationship.
Invoice address at issueMust the earlier value remain explainable?Keep a labelled snapshot if required.
Client reference on a projectWhich client does this project belong to?Keep the reference; it connects the records.
Calculated project totalMust it reflect current related rows or a past agreed amount?Calculate it where suitable; store an agreed historical amount separately if needed.

A reference to a related row is different from several editable copies of an address. A link between records does not by itself decide whether a historical value should be retained.

Change an existing field carefully

For one candidate field, identify its authoritative record. Compare the copies by record ID and relationship, not by name alone. Ask the data owner to resolve disagreements before replacing values with linked displays; a mismatch may be a legitimate older value or a different client.

List the screens, reports and automations that read the field. Test a proposed replacement against fictional records with a current value, a changed value and a missing or incorrect link. Preserve any history the business needs before removing an old field.

More from Data Modelling