Are you talking about something similar to an Auto-number/ID functionality (which is implemented), or a way to automatically adjust the numbering of a list when you rearrange the list order?
What I’m describing is closer to your second interpretation, although I believe that having it depend on a GUI-based re-ordering would be fraught with usability issues. If it were to be implemented that way you would only want it to adjust the numbering on a re-ordering event when the list is already sorted by that particular column.
Example of your implementation
In other words, if we have a list restaurants
with three columns (breakfast_rank
, lunch_rank
, and dinner_rank
) and we were dragging restaurants up and down, we would only re-number the rank
column that was currently being sorted. To put it differently, if I’m sorted by breakfast_rank
and am moving restaurants up and down, only update breakfast_rank
, not any of the other rank values.
Example of my implementation
In Airtable (and generally in tabular datasets) entries will often be sorted in a variety of different ways. Hence, it makes sense to sort according to data, not update data according to sort. To that end, what I’d recommend is that the datatype respond to value changes of a row in the column, not to the location of the entry in the visual GUI.
In other words, if we have these ranked restaurants:
lunch_rank
| restaurant_name
- 1 - Auntie Anne’s
- 2 - Bob’s Burgers
- 3 - Cashmere
- 4 - Dillon’s
Then updated the lunch_rank
value of Cashmere to 2, the other elements in the list would re-rank accordingly:
lunch_rank
| restaurant_name
- 1 - Auntie Anne’s
- 2 - Cashmere
- 3 - Bob’s Burgers
- 4 - Dillon’s
In the interface we could be sorted based on any column, or arbitrarily based on UX events, but rank would be based on the dataset explicitly. UX interfaces work well when there’s only a single rank dimension per table, but not if multiple ranks are supported.
What I’m describing is closer to your second interpretation, although I believe that having it depend on a GUI-based re-ordering would be fraught with usability issues. If it were to be implemented that way you would only want it to adjust the numbering on a re-ordering event when the list is already sorted by that particular column.
Example of your implementation
In other words, if we have a list restaurants
with three columns (breakfast_rank
, lunch_rank
, and dinner_rank
) and we were dragging restaurants up and down, we would only re-number the rank
column that was currently being sorted. To put it differently, if I’m sorted by breakfast_rank
and am moving restaurants up and down, only update breakfast_rank
, not any of the other rank values.
Example of my implementation
In Airtable (and generally in tabular datasets) entries will often be sorted in a variety of different ways. Hence, it makes sense to sort according to data, not update data according to sort. To that end, what I’d recommend is that the datatype respond to value changes of a row in the column, not to the location of the entry in the visual GUI.
In other words, if we have these ranked restaurants:
lunch_rank
| restaurant_name
- 1 - Auntie Anne’s
- 2 - Bob’s Burgers
- 3 - Cashmere
- 4 - Dillon’s
Then updated the lunch_rank
value of Cashmere to 2, the other elements in the list would re-rank accordingly:
lunch_rank
| restaurant_name
- 1 - Auntie Anne’s
- 2 - Cashmere
- 3 - Bob’s Burgers
- 4 - Dillon’s
In the interface we could be sorted based on any column, or arbitrarily based on UX events, but rank would be based on the dataset explicitly. UX interfaces work well when there’s only a single rank dimension per table, but not if multiple ranks are supported.
It would be a cool feature. Temporarily, you can use an workaround
of creating a separate view for “Breakfast Rank” “Lunch Rank” and “Dinner Rank”, and rearrange them. The record number to the left of the primary field will provide the rank number for the specific view without altering the values for the other fields. I know this makes it super hard to do anything useful with that data, but I guess it’s a start.
This would be super useful in forms. For example: students have to submit their top 3 choices for jobs. Right now, I have three linked columns feeding into the form and the students select a job from each one to express their preference. The follow-up work of assigning jobs to students would be much easier if there was a sortable rank column (or some commensurate functionality).
Agreed. I would love this functionality in forms!