Hi all.
I am creating an app for machine preventive maintenace with many machines and many checklists. Any checklists can be used with many machines. Hence, I add a column pm_no in machine table.
In any days, staffs need to select machine to complete PM checklist daily. So, I created table for any pm_list. So, I have so many tables for pm_list because they have different lists. The problem is, whenever I select machine. How can I see specific table for pm_list.
If you have better way to solve my problem. Please recommend.
Could you explain what you expect the user to do in the app and the expect results step by step?
- Create PM checklist for use with any machines. Many to one for checklists and machines.
- Any days, user will choose specific machine to complete PM as in checklist and record them in data.
Your current approach of creating a separate table for each checklist (pm_list) is the main source of your problem. It’s not scalable and makes linking machines to the correct checklist extremely difficult.
I imagine a structure of:
1. Machines Table
RowID | Machine Name | Location | Serial Number |
---|---|---|---|
M001 | CNC Mill Alpha | Shop Floor A | SN-CMA-1001 |
M002 | Laser Cutter Beta | Shop Floor B | SN-LCB-2001 |
M003 | Packing Robot Gamma | Warehouse | SN-PRG-3001 |
M004 | CNC Mill Delta | Shop Floor A | SN-CMD-1002 |
M005 | Hydraulic Press | Stamping Area | SN-HP-4001 |
2. Checklist Items Table
RowID | Task Description | Frequency Suggestion | Assigned Machine IDs (Comma-Delimited Text) | Notes |
---|---|---|---|---|
CI001 | Check main power switch | Daily | M001,M002,M003,M004,M005 | Ensure it operates smoothly |
CI002 | Inspect cutting tool | Daily | M001,M004 | Check for wear or damage |
CI003 | Check coolant/lubricant level | Daily | M001,M004 | Top up if needed |
CI004 | Clean laser lens | Weekly | M002 | Use approved cleaner |
CI005 | Verify safety guards | Daily | M001,M002,M003,M004,M005 | Ensure they are secure |
CI006 | Check suction cups | Weekly | M003 | Check for wear/cracks |
CI007 | Test emergency stop button | Monthly | M001,M002,M003,M004,M005 | Verify immediate stop |
CI008 | Check hydraulic fluid level | Weekly | M005 | Check sight glass |
CI009 | Inspect drive belts | Monthly | M001,M004,M005 | Check tension and wear |
CI010 | Clean debris from work area | Daily | M001,M002,M004,M005 |
Then, you can create a split text column of machine IDs in Checklist Items, and create a multiple relation from the Machines table, using Machines’ rowID linking to the split text column above, make it a multiple match.
When the user goes to the details view of a machine and try to submit a form, you should have a field in the “Checklist Submissions” table that store all checklist items that have been checked.
In the form, add a radio buttons style choice component pointing to “Checklist Submissions”, allow multiple choices and reference the relation as its data. It would look like this.
Thanks Thinh for your response. I created another table name “Checklist Submissions” already to collect any daily check. But It works just to display any checklists which related to machines. And some checklist need to record data, e.g., value of speed, temperature, etc. Not only check box.
If you need that level of customization, maybe different forms is the right way to do it. I don’t have further thoughts on this, trying an AI component on it might be too complicated.