Skip to main content

Table Reference

A comprehensive guide to NetSuite's internal table structures and how records relate to each other.


Why This Matters

NetSuite's data model is complex. Records don't exist in isolation - they're connected through various junction tables, mapping tables, and snapshot mechanisms. Understanding these relationships is essential for:

  • Writing accurate SuiteQL queries
  • Building effective Saved Searches
  • Creating SuiteAnalytics Workbooks
  • Developing SuiteScript integrations

What You'll Learn

NETSUITE DATA RELATIONSHIPS
═══════════════════════════════════════════════════════════════════════════════

┌─────────────────────────────────────────────────────────────────────────────┐
│ TRANSACTION LINKS │
│ │
│ Sales Order ──────▶ Invoice ──────▶ Payment │
│ │ │
│ └──────▶ Fulfillment │
│ │
│ Tables: NextTransactionLineLink, PreviousTransactionLineLink │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ MULTI-SELECT FIELDS │
│ │
│ Customer ◄─────────▶ Lead Sources (many-to-many) │
│ │
│ Tables: map_{record}_{field_id} │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ JUNCTION TABLES │
│ │
│ Transaction ──▶ TransactionLine ──▶ Item │
│ │ │ │
│ │ └──▶ TransactionAccountingLine ──▶ Account │
│ │ │
│ Item ──▶ ItemMember (components) │
│ Entity ──▶ EntityAddress (addresses) │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ SNAPSHOT TABLES │
│ │
│ Customer Address ────(copied at creation)────▶ Transaction Address │
│ BOM Components ────(copied at creation)────▶ Work Order Components │
│ Item Price ────(copied at creation)────▶ Transaction Line Rate │
│ │
│ Master data is "frozen" on transactions for audit/legal purposes │
└─────────────────────────────────────────────────────────────────────────────┘

Section Overview

SectionDescription
Transaction Link TablesHow transactions connect to each other (SO→Invoice, PO→Receipt)
Multi-Select TablesHidden mapping tables for multi-select fields
Junction TablesComplete reference of all NetSuite junction tables
Snapshot TablesHow master data is copied to transactions

Common Questions Answered

"Why doesn't my invoice show the updated customer address?" → See Snapshot Tables: Address Tables

"How do I find all invoices created from a Sales Order?" → See Transaction Link Tables

"How do I query a multi-select custom field?" → See Multi-Select Tables

"Why didn't my Work Order update when I changed the BOM?" → See Snapshot Tables: BOM Tables

"What tables link Transactions to GL accounts?" → See Junction Tables


Quick Reference: Finding the Right Table

You Want To...Use These Tables
Link SO to Invoice/FulfillmentNextTransactionLineLink, PreviousTransactionLineLink
Query multi-select field valuesmap_{record}_{field} or BUILTIN.MNFILTER
Get transaction GL impactTransactionAccountingLine
Get customer addressesCustomerAddressbook + EntityAddress
Get transaction addressesTransactionShippingAddress, TransactionBillingAddress
Get BOM componentsAssemblyItemMember or BomRevisionComponentMember
Get Work Order componentsTransactionLine (where type = WorkOrd)
Get item inventory by locationInventoryItemLocations, AggregateItemLocation
Get change historySystemNote