Documentation

Practical product docs for setting up, mapping, editing, and operating BaseBuddy.

Docs/Mapping fields and relations

Mapping fields and relations

Map scalar fields, semantic roles, authors, categories, tags, helper rows, join tables, and relation selectors.

Field mapping

Field mapping tells BaseBuddy how one editor field connects to storage. The simplest case is a direct column, like a title stored in posts.title.

Real schemas get more complex. A value might live in a JSON path, a helper row, a join table, an array, or a relation target. BaseBuddy handles these shapes as long as the mapping is explicit enough to read and write safely.

Posts mapping core fields with title, content, slug, redirects, excerpt, and featured image selected
Posts mapping core fields with title, content, slug, redirects, excerpt, and featured image selected

The field-level rules come from Storage contract and UI. If you are using the app right now, How mapping works on BaseBuddy shows where those choices appear in settings.

Common field roles

RoleCommon storage examples
Titletitle, headline, name
Slugslug, route_slug, permalink
Contentbody, content, body_md, payload.body
Excerptexcerpt, summary, dek
Statusstatus, state, published, is_live
Published datepublished_at, published_on, live_at
SEOseo_title, meta.description, helper SEO row

Don't force a role onto the wrong storage. The semantic role helps BaseBuddy understand behavior, but saves still follow the storage contract.

Markdown content, SEO fields, and redirects each have extra storage expectations, so use How to map Markdown content safely, How to map SEO fields on BaseBuddy, and How to map redirects on BaseBuddy when those roles are part of your project.

Mapping relations

Relations connect a post to another table or set of rows. Authors, categories, and tags are the most common.

Mapped postForeign keyJoin tableValue-match relationHelper rowSingle selectorMulti selectorSelector backed bystored valueMetadata fields
Relation shapeTypical useEditor control
Foreign keyOne author stored as author_idSingle selector
Join tableMany tags through post_tagsMulti selector
Value-match relationStored slug points at target slugSelector backed by target value
Helper rowOne related metadata row per postNormal field controls through helper row
Polymorphic relationOne link table points at multiple owner typesEditable only when discriminator rules are explicit

Author mapping

Author mapping matters for both display and permissions. If you use author-scoped access, BaseBuddy needs to know how a post belongs to an author.

Author-scoped members can only see or edit content assigned to their allowed author scope. If the author mapping is missing or unclear, authored permissions can't be trusted.

Set the author records with How to set up authors on BaseBuddy, connect posts with How to map authors to posts on BaseBuddy, then review the access behavior in Permissions and teams.

Categories and tags

These can be direct text arrays, relation tables, join tables, or custom taxonomy structures. Map the actual storage shape rather than trying to squeeze everything into one taxonomy model.

For large relation sets, BaseBuddy uses search instead of loading everything at once. Selected values stay visible while the full option set loads through bounded search.

Use How to map categories on BaseBuddy and How to map tags on BaseBuddy for the task-level flows.

When a field should be read-only

Mark a field as read-only when it's generated, view-derived, trigger-managed, unsafe to patch, or only meant for display. Being upfront about read-only is better than pretending a field can be safely edited.

When the editor already shows a read-only state, start with How to fix a field showing as read-only before changing production mapping.