Request for Input on implementing Tags

Hello and good morning, Afternoon or Evening according to where in the world you are right now. It is Saturday night in Queensland and one of the times I can put “day job” aside and get down to fun with Glide.
My request for help is some pointers/guidelines/dos and donts and (hopefully) referrals to videos on how best to implement tags on records.
Looking at a use case of classifying a person’s experience and exposure to different technology
If there is say 50 developers in a company, how is the best way to set up a “tagging” system so they can be tagged with the experience they have.
So for a mobile app developer, they would have tags associated with them such as JAVASCRIPT, REACT Native, Mongo DB, Glide…etc.

The requirement is to be able to have a long list of tags so that when editing the person row, it is possible to add a series of tages to the individual’s row, that corresponds to teh experience that they have with various tech tools etc.

Then it is required to be able to search on TAGS and to be able to use “AND” relationships in the query… so a query for a person tagged with GLIDEAPPS AND Javascript AND MAKE (as an example) can be identified by a query.

I would greatly appreciate any guidance plus referral to any relveant videos that you may know of

Thank you
Alan

PS - I have reviewed a similar question from 2023 Creating Tags for Individual List Items

And based on that I am wondering if the multiple choice component is the best way to go as with text entry comma delimited, tags can be duplicated but have slight differences eg capitals, mis-spelling and that will mean the searches will not be fool-proof if there are multiple tags with inadvertent variations

I am also aware that the serach default when searching for multiple tags will be an “OR” search - I want to be able to do “AND” seraches using the tags as the subject of the search

I would do a choice component and link it to a new table containing one row per tag.

You mean multiple filters?

Love it :joy:

1 Like

Thanks @MaximeBaker
The requirement is to be able to search the person table and list records that are related to ALL the tags being searched for eg
“Find all the developers who have the tags “Glide”, “Javascript” and “Make” - but only list those that have ALL THREE of the tags.”

Something like this?

You can change the computed columns sor it use the tags columns.

Yes, a table with one row per tag makes sense.
The use case I am going for requires linking multiple tags to one person and also linking multiple persons to a singe tab
So that means a “many to many” relationship (?)

Exactly!

But you can use one column for tags separated by comma in the people table.

I would opt to do this, then create some sort of a custom filter, if the desired behaviour is always AND (not OR like the native filter).

OK - so how does using one column for tags separated by commas look from a user perspective?

Do they simply type in a tag followed by a comma, or is there a way that the table with a row per tag can be accessed to add the tag to the comma separated row?

This would only be for easy storing. But with split text column and lookups to the tags table, it can have the style you want. What are you interest to?

Or if you want to be more SQL like, you can have a table that take the user row id and the tag. One per row. And use relation in that many to many linking table to facilitate the access.

Example:

User id tag id
User 1 id tag 1 id
User 1 id tag 2 id
User 2 id tag 55 id

Edited my previous reply.

Ahh Ok - so that is how we do many to many…
I have done this before, set up a text column as a way of initially entering tags - this is done by the user being presented with the comma separated text filed whilst in edit mode and editing the text field and simply add further “tag entries” at the end of the comma separated “list”.
The problem is the potential for mis-spelling of tags and duplicating tags with slightly different tag words that are trying to mean the same thing…

I am sorry as this seems very basic but I just cant see it at the moment…how can I add pre-defined tags chosen from a row in the tag file to a text field seprated by commas?

There would be no misspellings if you setup row ids in your tag table and use the row id anywhere where you need to refer to the tag(s).

So I guess my question is do you have a pre-defined list of tags?

Do you want to allow users to add custom tags?

Thanks @maximeBaker - I understand the row-id “play”…My question is how do I chooses multiple tags from the tag table, and how are the tags chosen (the rowi ds) added to the comma separated list?

Hi ThinhDinh -
yes there will be. a table of tags one row per tag
custom tags to be added only by crud operation on the tag table

There is no need to apologize… We all have our own pace and learning journey with Glide. You are doing great! We are here to help you anytime you want.

Regarding your question, here is how you can add predefined tags from a row in the tag table:
Create your tags column.
In the layout, choose the choice component.
Map the choice component to the tags table.
Select the tag name for the display text and the row id for the value.
Save that to your tags column.
Check allow multiple choices.
There we go!

Let me know if you need further clarification!

If you want to add new tags id without the choice component, in a workflow, you could append the new row id in the tags column like that:
“, new tag id”