We are re-designing our dashboard. Currently, all table lists will start with column 1.'ID' then 2.'Name'.

enter image description here

The issue is, all users have a name but not all users have Reference ID, especially when ID is not a compulsory field when registering the form.

I believe it is better for the first column to have a compulsory data, which will help users scan the list better.

I came up with two solutions:

  1. Make ID field compulsory when user register so every user will have this value.
  • But we have loyal users that use the old interface for many years where 'ID' is not a compulsory field so a lot of their data do not have the value 'ID'.
  1. Let the 'Name' column be the first column and 'ID', second. But that change would affect all the tables in the platform.

Example 1 enter image description here

Your guidance and suggestion will be a great help for me in refining the solution. Thank you

  • Is the ID so important that it should be easily scanned for? Is it something that can also be hidden but shown on request, only when it is really needed. Make sure this is a real problem and not just an assumption. Even switching the column and have empty cells could be a non-problem, it depends on how the table is used and read, that’s what you should know.
    – jazZRo
    Commented Dec 29, 2020 at 14:19
  • This comment is not UX or I'd make it an answer, but data-wise, each row in a table should have a unique and compulsory key, used internally. Names may be compulsory but they are not unique. However, it also sounds like your company's use of "ID" does not fit these criteria — I don't know what it represents but the fact that the customer might enter it tells me it's not internal. Instead, generate a unique key for each customer as it's created (or retroactively for existing customers). That key becomes your primary column. In terms of UX, no doubt people will sort by name or ID anyway. Commented Dec 29, 2020 at 16:38

3 Answers 3


The first column should be a primary column by which the user can scan down the list of items in the table.

Typically a table will be sorted and that could be by any of the columns but by default would typically be the first column - commonly a date or a name or an id that's meaningful to the user.

The question here is what criteria are being used to sort the table in a way for the user to scan easily through an ordered list. It looks like you show them in name order (but that might just be in your examples), and clearly it's not ordered by id because not all rows have an id! That would suggest that the name column (as the default ordering column) should come first? And if that affects all tables, well doesn't that mean that improvements in usability are propagated everywhere? i.e. a bonus, not an issue to worry about? Or are there other constraints not mentioned in the question?


I like Roger's answer quite a bit. But at first glance on your screenshots, moving the ID to the second column just seems a little odd to me.

I would recommend keeping the ID field first, but when it's empty, put something in there. This could be a horizontal line or perhaps an italicized word saying undefined or missing. Making it closer to a grey color would help emphasize it not being there.

I think that would help the empty fields not be quite as jarring on a quick scan, but still easy to see when it's missing, particularly when a user may be trying to quickly skim through the list.


I think a little bit of information about the use case would help us give you a more precise answer, however this is what I think from seeing this:

If for some reason you need the ID to be in the first column, I think the simplest way would be to create an ID automatically for those users who don't have it. It is not clear how some users create it, since in your example they follow a pattern. Maybe they can create IDs freely. That, I don't know. However, it seems that the ID is not very important as there are users who have it and users who do not. So creating a random one shouldn't be a problem, they won't use it anyway.

Now the question is: do you need to see the ID? You mention visual scanning, and you're right, having something in that field would help. But how could anyone make use of that identification? What is the reason for this? How will it help users to see this field?

I think in your current situation, putting the name first (as mentioned by Roger Atrill) would be better. But unless you have a real need for id to be first, I'd say putting (last) name first would be the best option in any situation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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