Currently the schema view stores the coords of manual positioned tables in a cookie in the web browser.
This has following disadvantages:
web browsers configured to clean all their history data when browser is closed for privacy reasons loose the coords cookie.
There is a 4k cookie limit. So with assuming average 40 byte per table name and coord for instance you reach the limit with a database around >100 tables. magento has >300 tables, openbravo >500, so this limit is reached quick even if table names are shorter.
The permalink feature has also its limitation: There is a 2k URL length limit in browsers, so encoding the positions in a bookmark is even more limited.
Solutions:
To mitigate just the 4k cookie limit, IndexedDB of web browser can be used to store bigger structured data in the browser.
Use also the approach that phpmyadmin's Designer uses. In case of adminer, a sqlite database could be used for that purpose. Requires adminer handles multiple connections well. (one for that internal sqlite db, and one or more connections to other supported databases)
The cookie should be valid for 30 days.
Adminer is not going to use an SQLite database for its storage but the IndexedDB idea is worth pursuing.
Maybe I can add it as an independent plugin..?
In addition to client side storage
I could imagine:
Yeah, plugins are fine. I'll happily link them from https://www.adminer.org/plugins/. If IndexedDB is reasonably supported in browsers, it could also be a storage used by Adminer itself (with a fallback to cookie).