How do I do a left join a user's item with a system table item in a repeating group?

Hi All,
I illustrated to demonstrate what I am attempting.

I am working on a SaaS app that every customer/user has the same checklist that customers can use for their purpose.

  • Every customer has the same checklist tasks.
  • Customer/users can view the checklist and update the status of that checklist task.
  • The user’s status updates are ONLY for that user, and only they see the status set by themselves.

For the repeater group, I do a “Search for Checklist Tasks” which pulls back the list as expected, BUT I want a dropdown for the status column. And that dropdown value is set by the user. I don’t know what to set in the dropdown to connect the user’s selection to the checklist item. Even more difficult for me to understand is how to update when someone has changed the status.

Does that make sense?

In the diagram, I put how I set up the database and the repeater group.

I think you would just create a field and have it be the data type you want it related to.

I updated my post to make it more clear. I am not sure that is what I want.

So to recap:

  • Site Admin create checklist items that everyone(each customer/user) will see.
  • Repeater group lists all the items in that checklist.
  • Each user should be able to update the status of individual check list item.
  • I don’t know how to pull the user’s selected status for that particular checklist item, let alone update it when the user makes a change to it.

NOTE: I noticed many people would COPY the list of items to each user as the user is created. This seems very inefficient in the long run for performance, making the database very large as the app grows… Is there alternative or better performing methods?

Can be a datatype or an option set

If a data type (Do Search for)…If an option set (Get an Option - all options)

Create a data type that is called ‘Checklist’ or whatever else you want to name it. In that data type make a data field called ‘items’ or whatever else you want to name it, and make that field the same type of data if you opted to use data types or the option set if you decided to use options sets as per the 2 suggestions above.

Also add a field called ‘status’ or whatever else you want to call it. For me, I would make an option set of status that a user could select from, so my data field of ‘status’ would be of that option set.

Also have a field of ‘User’ and make it of the data type User.

When a user is created or whatever other action you want to use, create the entries in your database for the ‘Checklist’…now the user will have their own ability to change the status to the items in the checklist only for them and are unable to alter the items in the checklist.

In the repeating group ‘do a search for ‘checklist’ with constraint ‘User’ is current user’…then in your repeating group add the necessary elements to update the status and run the workflow to make a change to thing, the thing being current cell’s ‘Checklist’.

Pretty similar to my suggestion and the way it would be done in Bubble. Not really inefficient for performance as the constraint of ‘User’ will only return those items in the database for that user, so realistically maybe 1-1.5 seconds from the time the client requests the server and the server returns to the client. Which is about as fast as Bubble does things.

Yes, it will make the database large as the app grows, but not really an issue as you will have only 3 fields plus the built in fields of the data type, all of which will be likely less than 32 characters, so pretty insignificant to any related storage costs.

If there is, I’d love to hear it.

1 Like

Ok, I think this makes sense. I am going to go try to implement it.
I appreciate your detailed instructions!!