How to efficiently manage big size tables?
Introduction
In an administration web application, I have to show some big tables having many columns. It doesn't have to work on anything but desktop (or maybe tablet) with a screen of at least 1024x768
pixels.
There's a lot of information to be shown, beauty doesn't matter much but usability does. IMHO vertical scrolling is too bad and so is fixing the table width to e.g. 1000px
as some users may have more than twice as much.
Some columns contain nothing but a checkbox and there's no point to make them wider. Others contain some text whose length has no (usable) upper bound, like e.g., "surname" or "email". Therefore, I made some columns fixed width and others growable.
Showing everything is impossible, reducing width hard: There are no big numbers, so rounding can't help. I'm considering a multirow layout, but only as an option, not the base layout. Table transposition doesn't feel right with my data.
The problem
With the minimum screen width, some fields have to be truncated, but usually you can see everything important. I did this by assigning a minimum width to every column and specifying what columns should grow (a column containing a checkbox or a date should not).
With a bigger screen, the excess width gets evenly split between all growing columns. This works, but there's a requirement to be able to adjust column width manually. Obviously, such a change should be persistent. This is easy, but what should happen when the user resizes their window?
As an extreme example, imagine a growing column with minimum width 100px
. This width would be user for a 1000px
window. Imagine, there are five growable columns and the window is 2000px
. The column gets one fifth of the excess width, so it's shown 100px + 1000px/5 = 300px
wide.
Now the user makes it smaller, let's say 160px
. To fit it to my simple formula, I'd have to decrease my minimum width by 140px
, so it became -40px
. This is obviously wrong.
I could stop using the formula whenever the user resizes a column. But then I don't know what to do when the window size changes. I could find a better formula, but first I'd like to know what the user expects in such a case.