Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

I'm working on the design for a Multi-Tenant SaaS app. I've run up into an interesting usability challenge. Here's what the user is trying to accomplish:

  1. Within the administrative area, an admin will connect the app to a database provider (e.g., Oracle, SQL Server, etc.)
  2. Once connected, we'll get back a list of all the table names in the database - this could be as small as a few tables, or as high as 75-100 tables
  3. The admin then must select which tables to grant access to

The most rudimentary interface would be a giant list of checkboxes, however at 75-100 tables, that becomes a huge list to work through. I'm looking for ideas on how to best make this interface usable. It doesn't have to be a giant list of checkboxes, it's more about managing the True/False permissions to have access to a table.

A few of the constraints:

  • This is a multi-tenant SaaS app, so there are no groupings that I can predict - it will always be different each time it's run
  • The basic concept that an admin can manage this must continue to exist (i.e., I can't not have this level of permission management exist)
  • By default most database tables will be selected, so I'd like to stay away from something where each table has to be manually selected, or at least have a fallback like "select all" and then uncheck the unwanted few

Any thoughts on good design patterns for managing this?

share|improve this question

3 Answers 3

So to clarify, there are no relationships between these tables whatsoever except for the fact they're being queried among other tables?

If you can assign relational tags to each table and if the tags relate to whether they'd be grouped together for individual permission, you could arrange and display the table names within each tag where each tag has at least one table name.

If this isn't the case, creating a two-column listing with No Permission on the left and Permission on the right, with all tables starting out in the left-hand column and can be individually or multiply selected and dragged or clicked over to the right seems like the best plan.

But in the end, I'd still look for a way to identify a pattern among like tables and group the results on the fly.

share|improve this answer
    
Thanks - that's very helpful to hear that. Your two column option may be what we end up landing on. I try to stay away from that because it feels very "old school," but it may actually be the best UI for this situation. –  Marcelo Somers Apr 21 at 18:45
    
The two column system existed because it works. :)If the admin knows what the items are called. You can also put in a quick search filter to help them quickly find the item to make it less cumbersome. –  nightning Apr 21 at 19:31

Another good option could be create the table selector like a button (or similar). Then, you can click in either table and select them as permitted (and colored in green). The non-permit tables could be colored in red or grey.

The "button" selector can be painted as a label, a card, a button, ... The important thing is the all surface works as an action area to improve drastically the velocity to mark and the usability in general against the checkbox option.

Finally, you can auto-save when any change has ocurred to avoid mark a lot of tables and any fail requires init the work again.

share|improve this answer

I would also consider pushing back to the tech team - would it be possible to create a "grouping table" where these admin table can be categorized in the set up of the app.. that would at least give you the ability to do things like visually group various table, and maybe even do some select/deselect all by grouping.

Good luck with this - sounds like a fun project! ;-)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.