Others

How to Design a Database for 3D Printing Requests and Jobs

Kushani NimanthikaKushani Nimanthika Oct 28, 2026 870 views

Question details

The user needs a structured relational database schema to effectively track 3D printing requests, parts, print jobs, materials, and production workflows.

How to Design a Database for 3D Printing Requests and Print Jobs
Product
Database
Device & OS
not provided
Scenario
Setting up a management system to track 3D printing workflows where multiple parts make up a request, and parts from different requests can be combined into a single print job.
Observed behavior
Requires an optimized architecture linking requesters, requests, printable parts, and print jobs without duplicating data.
Before you start

Before structuring your database, list all the specific materials you stock and clearly define your production workflow stages (e.g., Requested, Added to Print Job, Printed, Completed).

Solution 1Recommended

Create a Relational Database Schema for 3D Printing

Design separate, linked tables to properly handle the many-to-many relationship between user requests and batch print jobs.

To handle complex scenarios where a single request contains multiple parts, and one print job contains parts from multiple requests, you need a normalized relational schema.

1
Create the Requesters Table

Set up a dedicated 'Requesters' table with unique IDs, names, and contact info. Do not use free-text name fields in the requests table, as this leads to inconsistent and duplicate entries.

2
Define the Requests Table

Create a 'Requests' table linked to the Requester ID. Generate a formatted request number using the year and a sequence (e.g., '23-00001') to uniquely identify each order.

3
Set Up the RequestedParts Table

Create a 'RequestedParts' table containing a Request-Part ID, Request ID, part description, design file link for the printer operator, and the requested quantity.

4
Create the PrintJobs Table

Set up a 'PrintJobs' table to track active printer runs. Include a Print-Job ID, the specific printer assigned, start time, and overall machine status.

5
Link with a PrintedParts Table

Create an intermediate 'PrintedParts' table that links the Print-Job ID to the Requested-Part ID. Track the completed quantity, materials used, and the part's status (Requested, Added to Print Job, Printed, Completed).

Create a Relational Database Schema for 3D Printing
Link to Design Files: Always include a direct URL or file path to the printable part design (STL/OBJ files) in your RequestedParts table so the printer operator can access it immediately.
Manage 3D Printing Workflows

Build Your 3D Printing Database with WPS Spreadsheet

WPS Spreadsheet is a powerful, free tool to create relational trackers, manage 3D printing inventories, and monitor print jobs without complex SQL database setups.

  1. 1. Open WPS Spreadsheet: Launch WPS Office and open a new Blank Spreadsheet to serve as your database.
  2. 2. Create Database Tables as Tabs: Add new worksheet tabs at the bottom and name them Requesters, Requests, Requested Parts, and Print Jobs.
  3. 3. Define Database Columns: In each tab, set up your column headers (e.g., Request ID, Part Link, Material, Quantity, Status) in the first row.
  4. 4. Link Data Between Sheets: Use the VLOOKUP function to automatically pull requester information into your active Print Jobs sheet to avoid manual data entry.
Easily link multiple sheets (Requesters, Requests, Print Jobs) with advanced formulas.Fully compatible with Microsoft Excel (.xlsx) formats.Use built-in Data Validation to enforce workflow statuses like Requested, Printed, and Completed.Free and lightweight alternative for tracking inventory and materials.
microsoft office alternative - wps office

Frequently Asked Questions

Why do I need a separate table for Requesters instead of typing their names?

Using a dedicated Requesters table prevents data entry errors, avoids duplicate names with slight spelling variations, and ensures consistency when tracking multiple requests from the same person.

How should I format request numbers in the database?

A common and effective method is combining the current year with a sequence number, such as '23-00001' or '23-XXXXX'. This allows for easy sorting and chronological tracking without needing a complex formatting system.

How do I handle parts from different requests being printed together?

By creating an intermediate 'PrintedParts' table, you can map multiple requested parts to a single Print Job ID. This supports a many-to-many relationship, allowing efficient batch printing of mixed requests on the same print bed.

What workflow statuses should I include in my database?

A typical 3D printing workflow should include distinct operational statuses like 'Requested', 'Added to Print Job', 'Printed', and 'Completed' to accurately track the lifecycle of each part.