merging 10 custom tables into one table
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
8 hours ago
Hi Team,
Our client has requested that we merge 10 custom tables into a single table and introduce a "Type" field containing the names of all existing tables as dropdown values.
Each of the current tables has:
- Different approval processes
- Different UI Actions
- Different business processes
- Different user access restrictions
- Different form sections and fields
In the proposed design, based on the selected Type, the system would display the relevant fields and sections and execute the corresponding approvals and UI Actions.
Could you please advise whether merging these 10 tables into a single table is considered a best practice? Given the differences in processes, security requirements, UI configurations, and business logic, would it be better to retain separate tables (or use a parent-child table structure) instead of consolidating everything into one table?
Please share your recommendations and any best practices that should be considered for this design approach.
Thanks,
Bhavana
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
8 hours ago
Hello @rBh ,
As per my understanding, the proposed single-table design trades short-term simplicity for long-term technical debt. ServiceNow's table inheritance model exists precisely for this scenario shared identity, divergent behavior. A parent-child structure gives you a unified reporting layer (query the parent for all records) while preserving isolated logic, security, and UI per type. This is the same pattern ServiceNow itself uses for Task, ITSM, HR, and Legal modules.
If my response helped mark as helpful and accept the solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
8 hours ago
Hi @rBh
Combining 10 distinct custom tables with fundamentally different business processes into one table is a ServiceNow anti-pattern. This approach often leads to difficult maintenance, complicated ACL management, and cluttered forms.
Instead of that -
- Create a single custom parent table that contains all the globally shared fields across all 10 processes.
- Create 10 child tables extending this parent table.
Regards
Tanushree Maiti
ServiceNow Technical Architect
LinkedIn: https://www.linkedin.com/in/tanushreemaiti