Overview
Custom Tables provide a flexible way to extend platform capabilities for specific business requirements. However, they are not intended to function as a full relational database system (RDBMS) and should be used with proper design considerations to ensure optimal performance and scalability.
Important: Custom Tables are best suited for reference data, simple mappings, and lightweight extensions, not core business data storage.
Key Limitations
Non-Relational Structure
Custom Tables are not suitable for relational data models and do not support the following:
- Table joins
- Foreign keys
- Composite keys
Column Limitations
- Avoid creating tables with more than 15 columns
- High column counts can lead to:
- Increased storage usage
- Slower query performance
- Higher processing overhead
Recommendation: Keep the schema minimal and relevant to the use case.
Record Volume Guidelines
- Tables with 5–6 columns can handle up to ~50,000 records
- As the number of columns increases, the recommended record capacity decreases
- Not suitable for storing large-scale or high-frequency transactional data
Performance Considerations
Frequent operations can impact overall system performance:
- High-frequency imports
- Frequent updates or reads
- Repeated refresh operations
Potential impacts:
- Increased hardware utilization
- Slower API response times
- Delays in processing
Fair Usage Guidelines
Table Design Best Practices
- Keep the number of tables limited and purposeful
- Use only the necessary columns
- Avoid over-complicating the schema
Data Volume Management
Maintain controlled limits on:
- Number of tables
- Number of columns (recommended: 10–15)
- Number of records
Best practices:
- Archive old data
- Perform periodic cleanup
Import & Refresh Strategy
- Avoid frequent imports (e.g., multiple times per hour)
- Prefer batch processing over real-time updates
- Limit unnecessary refresh or re-index operations
Supported Data Types and Field Limits
- Custom Tables support the following data types:
- Text – up to 4000 characters
- Text Area – up to 8000 characters
- Number – supports up to 38 digits (precision/scale 38/38)
- Boolean
- Date and Time
Guideline: Select appropriate data types to optimize storage and performance.
Usage Guidelines: When to Use vs Avoid
Use Custom Tables When:
- Data is small, stable, and structured
- Use case is configuration, reference, or lightweight extension
- No complex relationships are required
- Data is not available in standard platform features
Avoid Using Custom Tables When:
- Data is large or frequently changing
- Relationships between datasets are required
- Use case involves real-time or transactional systems
- Data is expected to grow significantly over time
Best Practices
- Keep table structure simple and minimal
- Limit columns and records
- Avoid frequent updates or imports
- Regularly clean up unused data
Recommended Use Cases (B2B)
Custom Tables are most effective when used for small, controlled, and well-defined extensions such as:
Temporary or Transitional Data
- Storing short-term data during:
- Data migration
- Feature rollout
- Interim processes
- Examples:
- Maintaining mappings between legacy system identifiers and new system identifiers during migration
External System Reference Mapping
- Mapping identifiers between external systems and the platform
- Maintaining a small, stable integration reference data
- Examples:
- Mapping ERP Customer ID to Znode Customer ID
- Linking External Product ID with Znode Product SKU
- Storing reference IDs used for syncing data with third-party systems
UI-Level Data Extensions
- Used for storing additional information intended for UI display purposes, such as:
- Enhancing existing screens with supplementary fields
- Displaying non-critical, contextual information to users
- Examples:
- Adding a “Special Handling Note” field on detail pages
- Displaying a “Priority” or “Status” label within UI screens
- Showing an additional field like “Internal Remarks” in detail views
Simple Data Mapping
- Mapping small datasets such as:
- Customer to Tag
- Product to Label
- Region to Attribute
- Example:
- Assigning a tag like “Premium” or “New” to specific customers
- Adding a label like “Seasonal” or “Clearance” to certain products
- Mapping regions to a category like “Urban” or “Rural.”
Basic Business Rules
- Managing simple conditions or flags
- Supporting threshold-based or eligibility-based logic
- Examples:
- Marking orders as “High Value Order” if the amount is above a certain limit
- Flagging customers as “Eligible for Free Shipping” based on order value
- Setting a simple rule like “Allow Bulk Orders” → Yes / No for selected customers
Configuration & Lookup Data
- Storing business-specific codes, labels, or categories
- Maintaining small lookup datasets
- Examples:
- Mapping internal customer types like CUST_TYPE_1 to Retail Customer or Wholesale Customer
- Creating a list of order statuses like Pending, Approved, On Hold
- Defining categories such as Gold, Silver, Bronze for customer segmentation
Reporting Support Data (Lightweight)
- Storing small datasets used for filtering or categorization in reports
- Examples:
- Tagging products as “High Margin” or “Low Margin” for analysis
- Creating custom report filters like “Priority Customers”
Feature Flags & Conditional Controls
- Enabling or disabling features for specific customers or scenarios
- Managing simple yes/no or condition-based settings
- Examples:
- Marking customers as “Eligible for Express Checkout” → Yes / No
- Enabling a “Special Discount” feature only for selected customers
Data Maintenance & Growth Considerations
Data Growth
Always consider how your data will grow over time.
If your data is expected to:
- Increase significantly
- Require frequent updates
- Become complex
Consider alternative approaches instead of using Custom Tables.
Data Maintenance
- Custom Tables require regular monitoring and maintenance
- Ensure data remains relevant and up to date
- Periodically remove unused or outdated records
Integration Consideration
- Avoid using Custom Tables for high-frequency integration data
- Use them only for reference-level mappings, not continuous data exchange
Summary
Custom Tables should be used to extend platform functionality in a controlled and optimized manner. Proper usage ensures:
- Better system performance
- Scalability
- Easier maintenance
They are a powerful tool when used correctly but should not replace core platform architecture or database design principles.