Relation or Array or ? Glide design question

I have a table called events which relates to a number of other tables such as Company.

I have been asked to keep track of invitees (other companies) and attendees (also other companies but not necessarily the same) and to track if invited companies attended the event.

My first thought was a table with: EventID | Host (Company) | Guest (Company) | Invited (1/0) | Attended (1/0) ) and then use templates (EventID + Guest), another relation (template = template) and a rollup to compute if a Company was Invited AND Attended ( 1 is no, 2 is yes).

Seems easy to implement but smells a little half-baked - any other ideas??..

I think a simpler approach would be to use booleans for Invited/Attended, and then an if-then-else column that references each of those to determine if both are true.

If you wanted to know how many invited attendees actually attended a specific event, you’d just need a relation to your event ID, and then a rollup that counts the if-then-else true values.

Not wanting to open a can of worms, but does the data already exist in other tables? If it does, I’d probably be looking for ways to leverage the existing data to get what I needed, rather than creating a new table just for this purpose. It seems like it would generate an awful lot of rows…

I have an Event table (with an EventID) and Events are smallish with 5 - 50 companies per Event. The list of target companies is 2,000 and growing. Attendees and Invitees are selected from this target table.

Events are specific to a territory and are usually Co-hosted (with another Company).

The table of ‘target’ companies is 2,000 rows and growing. One (Host) company will potentially end up with 25,000 ‘target’ companies across a number of different territories and with a number of different Co-hots.

I can add columns to the ‘target’ companies table but I expect that to be large and didn’t want to overload it too much.

Not sure if this helps, but I am open to any idea. Thanks as always.

My first draft of the screen is this:

I need to build out the invitation/attendance tracking as well as if invitees attended.

Invitees and attendees come from the same ‘target’ table and need to be ‘related’ to the event.

Hope this makes more sense.

TIA

So if you’re going to create a new table that contains one row per event, per invited attendee, I’d imagine that table will very quickly grow to tens (if not hundreds) of thousands of rows, no?

Just based on what you’ve shared, I think I’d be trying to do this tracking inside my Events table.
Add two columns, one to contain a joined list of InviteeID’s, and another to contain a joined list of AttendeeID’s, and you’re basically done. From those two columns, you can easily use a couple of array plugins to extract a list of those that were “invited and attended”.
Zero extra tables or extra rows required.

Thanks for the great feedback. I watched this @Robert_Petitto video (Glide: TWO WAYS to Allow Users to RSVP, Register and Join - YouTube) to get an idea on how to do this. How would you create such a joined list when selecting from another table? This is one thing about Glide I don’t really understand.

In general the problem is: I have a large list of items (accounts) which I need to create subsets. Conceptually I want to ‘select’ multiple accounts from a large list of accounts (see image) and then have them ‘moved’ into this new table (or joined column). This is what the selection process looks like today but I only allow one account to be selected and then I ‘copy’ that AccountID to the new row I am creating based on what I selected.

But I don’t know how this would methodology would work when selecting multiple accounts. In this example I would want to go to one screen and select all the accounts that have been invited. At the end of the event I would select all the account that attended. Storing them as a joined list or creating a separate table.

I intend to use the Account table selection method a lot more but my current method is based on a USC ‘selected flag’ in the account table doesn’t scale. It is fine when 1 account is selected (copying one AccountID into a column) but I don’t know how to move multiple selected items into a column (like a joined list) or into multiple rows in a table.

Hope this makes sense and all ideas welcomed!

image

I’d imagine that you’ll probably need to use some variation of the Trebuchet method.

It shouldn’t really matter where (which tables) the Account options come from. As long as they can be presented in some sort of list that you can configure an action on, that’s all you need.

1 Like

I looked at this example and it is certainly seems easier in a Glide Page where you have more room to have a button next to a list of items as an ‘action’ (and with less data). I watched another @Robert_Petitto video (Glide: The Trebuchet Method is UNREAL - YouTube) and he started with a checklist but moved to a list and then to a ‘less dense’ representation - card view.

My process was going to be:
Display a check list of accounts (currently used elsewhere for selecting one account)
Let customer search list and check all the accounts they have invited/will invite.
Push ‘Mark as Invited’ button
“Move” all the ‘checked/invited’ accounts into the Events ‘array column’.

I currently implemented a check list (when selecting one item) and I was imagining I could use the same ‘UI’ for selecting multiple accounts and that I would process the entire list at one time after the user checks all the accounts. But Glide does not have an iterate capability when acting upon a check list and I don’t see how I can create an action upon ‘checking’ an item.

I can ‘select/invite’ an account one-by-one by clicking on a list item (with a custom action) that would then ‘sling’ the item into the array. But the item list looks “different” because the custom action symbol (>) at the right but not actually taking you anywhere. Is it possible to ‘hide’ this glyph?

Net/net: In general with Glide I should be processing actions individually and not as a list.

Thanks again for thinking about this

With an Inline List using a checklist style, what you can do is target the Check Value at a User Specific Boolean, then you can have an if-then-else column that looks at the status of that boolean, and if it’s checked return the item (contact) ID. Then you can gather those up with a joined list column and use that to update your invite list. But yes, you need an action somewhere to make that happen. But I’d imagine you’d have that anyway? ie. “Check all those to invite, then tap a button to confirm”?

Indeed it is:

<pre><span><style>
  [data-test="list-item"] .navigationIcon {
  display: none;
}

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.