I have a general design question. We started a development for a small company. Well - small or big - the requirements are always almost the same except that the application does not have to scale.
Now, the customer likes to have tags/labels almost everywhere, to be able to search for such tags.
Tags are just key words to search for, and the user can adopt his own way of doing this.
Implementing this using a m:m relationship is not difficult. To enter quickly, we placed a field on top of the portal which is the entry field. If a label already exists, it can be detected, or similar labels appear. If it is a unique entry then it will be accepted.
Using just a text field and entering words there - which can be found - has a big disadvantage as it is not possible to reference associated records easily. (We also keep ALL value lists in separate tables.)
I would prefer though to have tags listed in horizontal order, not vertical order (as in portals). It is often done that way to also save space. And somehow a tag should behave like a real "label", not just like a word or composition of words.
Also entered text would self-complete in case a tag is already existing. This is possible.
Would one use popup buttons with a portal to select from?
To apply this everywhere - in our case in projects, tasks, invoices, contacts, etc. - we are about to implement the Selector-Connector model. We hope to be able to create a generic implementation - once implemented, it can be applied wherever the customer likes.
Are there best practices implementing "tags" with regard to table design, functions used (native FileMaker search/select or ExecuteSQL) and to give the best user experience?
(Look how tags are implemented when starting a discussion in this website.)