Today we have extended TeamDesk‘s match conditions with Contains operator to allow multi-reference columns handling.

The operator accepts multi-reference column on one side and a single value on another and evaluates to true if single value is one of the values selected in a multi-reference column.

This extension allows quite interesting extension to a typical task tracking system. Consider the application design:

There are Projects and there are Users listed in a user property table. There is a multi-reference column Projects from Users table to Projects table* to allow admin select the list of projects the user allowed to access. There are many Tasks related to one Project. And finally Tasks table references Users table (either via single reference, or multi-reference) to specify an assignee(s).

When picking up the assignee for a task you may want to display only those users for whom the task’s project was made accessible. Basically all you need to do is to add match condition to specify that User’s Projects multi-reference column contains Task’s project reference.

* By the way, you can easily allow adding projects to the user or users to a project from either side. Multi-reference between two tables creates a new table to store actual values. Users to Projects multi-reference will store the values in User Projects table. TeamDesk allows to sharing the table between multi-reference columns, thus you can create another, Projects to Users multi-reference column in Projects table, but rather than creating a new table you can specify the table created by first multi-reference column.