The application I'm currently working on has a system of "status indicators" for people records, e.g. PPL_Status_Homeless, when set to "1", indicates that this person is homeless. There are 2 problems with this setup:
- The indicators are hard-coded, and are therefore not easily variable between installations of the system. Different installations have very different requirements, and we need something more flexible to avoid a very long list of indicators.
- All indicators are held for all records, and either set or not. This is clearly ineffiicient, and will become more so as the no. of indicators grows.
So I'm planning to have a simplified mechanism for labelling (or "tagging") records, based on the common experience of tagging blog posts, photos, etc. A global field (in an Interface table) will hold a return-separated list of all available tags ("Homeless", "Special needs", etc.). On each person's record, there will be a text field (PPL_Tags) holding a return-separated list of all tags held for each person, with the list maintained by the user simply clicking on a list of available tags, to toggle them on or off for that person.
I can't see any reason why this won't give me the searching and reporting functionality that I need (e.g. "show me all homeless people", "list all people with the following tags...") - BUT, it seems so straightforward that I fear I'm missing something. If you can see a problem with this approach, I'd really appreciate your input.