A list view by default displays 15 entities of a certain database, thus 15 rows.
When a list view contains multiple databases, the number of rows is multiplied by the number of databases.
For example, if a listview has two databases A and B, you see by default 30 rows, 15 entities of database A and 15 entities of database B.
Problem
When we sort this view by 'All Databases > Creation Date - Descending, we expect a list of entities of databases A and B, which are sorted by their Creation Date.
Meaning, the creation date is descending regardless of the database, since that is what ‘All Databases’ means.
This however is not the case.
Example case
If yesterday we created 20 entities of database A, and today we created 20 entities of database B, and if they are sorted by All Databases > Creation Date - Descending, we expect to see in the default list view display the last 30 entities we created which is:
20 Entities of database B
10 entities of database A
Instead, I see:
15 entities of database B (of today)
15 entities of database A (of yesterday)
…and the remaining 5 entities of database B that I created today, are missing in the list view!
Instead, I see older entities (of database A)
That makes me think that I have data loss. I had to really investigate this to understand the issue.
This issue makes sorting by date useless, and misguides the user.
As a bit of context, the reason why the behaviour is as it is, relates to the fact that, for performance reasons, the list view is constructed by querying each of the linked databases, and returning the first 15 entities (per db). If a sort order is applied, this is used for each db query.
In your case, although it is true that it would be possible to keep the same size list (30) by showing 20 items from db A and 10 from from db B, this would either require that the query of database A and database B to be dependent on each other, or that both dbs are queried to return 30 items, and then perform a secondary sort&truncate on the resultant combined list.
Either method would impact performance negatively, particularly as the number of dbs to be displayed in the list increases.
Your team may want to consider this:
Resolving this issue will significantly enhance user experience and trust in data integrity.
In hear and understand your argument about the performance concerns with querying multiple databases. In order to help brainstorm this issue, which sooner or later needs to be addressed, here are some ideas.
Dynamic Loading on Interaction: Implement “load more” feature; use lazy loading when users scroll or interact.
Intelligent Pre-fetching: Predictively pre-fetch data likely to be requested next, based on user behavior.
Server-Side Sorting and Aggregation: Perform sorting and merging of data from multiple databases on the server before sending it to the client. This reduces the processing load on the client-side, ensures efficient integration of data according to user-defined sort orders, and improves overall response times.