pgadmin-org / pgadmin4

pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
https://www.pgadmin.org
Other
2.4k stars 632 forks source link

Decrease number of clicks for access to database tables, which is most used section for common cases (RM #6113) #4042

Closed dpage closed 1 year ago

dpage commented 3 years ago

Issue migrated from Redmine: https://redmine.postgresql.org/issues/6113 Originally created by Alexey Korepov at 2020-12-23 11:28:18 UTC.

At now each database item in Browser - contains long list of sections, like Casts, Catalogs, Extensions, ... Tables, etc. But in most cases users need to open database for lookup Tables (tables structure or data). And each time for do this - they need to make 5 clicks for open needed table: Database Name » Schemas » public » Tables » table_name, here is screenshot: !https://dataedo.com/asset/img/kb/db-tools/pgadmin/pgadmin_table_comment.png! This makes tree vertical size too high, and horizontal indent of "tables" item - very high too.

Good example of other database interface, that didn't have this problem is phpMyAdmin - when user click on database name, it immediately sees all database tables, and other database info are hidden in horizontal tabs. This way of navigation is much more comfortable for most of cases, when users work with databases.

I know, that for some cases users need to have Casts/Catalogs/etc in quick access too, but those cases are very rare, comparing to access table list. And for not broke current behaviour, we can make this optionally, for enabling manually in settings.

h2. Proposed solution:

First solution is to move all schemas to top level of database tree, and "hide" all other sections to some "Settings" section:


- Servers
- - 192.168.1.2
- - - Databases
- - - - dvdrental
- - - - - Schemas/public/Tables
- - - - - Schemas/scheme2/Tables
- - - - - Settings 
- - - - - - Casts
- - - - - - Catalogs
- - - - - - etc...

Second solution is adding some option to pin items from Tables section to top of "Database" subtree - something like this:


- Servers
- - 192.168.1.2
- - - Databases
- - - - dvdrental
- - - - - Schemas/public/Tables
- - - - - Schemas/scheme2/Tables
- - - - - Casts
- - - - - Catalogs
- - - - etc...

What do you think about this idea?

dpage commented 3 years ago

Comment migrated from Redmine: https://redmine.postgresql.org/issues/6113#note-1 Originally created by Arthur Clifford at 2020-12-24 01:56:40 UTC.

Another option would be a context menu option at the server level that inverts the tree a little with jump-to options that provide sub-options if there are more than one db/schema.

So ServerX (right-click:) ... Jump-to Tables Jump to Query Tool ...

If there is one database and one schema then it can select the appropriate context: for Jump-to Tables (selects the db, selects the one schema (public), then expands and selects Tables) for Jump-to Query Builder (selects the db, then opens the query tool)

If the user has more than one DB (the entries with > suggest an expandable sub-section Jump-to Tables > DB 1 DB 2 Jump-to Query > DB 1 DB 2

Behavior would be the same except now the user having more than one db in their server would need to specify which DB.

If the user has a huge number of dbs, say > 10, maybe drop these options from the context menu and let them drill more. Or as the OP suggested a pinning strategy to populate the jump-to sub-options.

And/or include the jump-to options to the DB level context menu too at least for jump-to Tables.

This way for simple DB setups like for a simple web-app the DB manager can get to query and table abilities quickly without having to traverse the hierarchies. While not having to reorganize existing tree structures.

dpage commented 3 years ago

Image migrated from Redmine: https://redmine.postgresql.org/attachments/download/5521 Originally created by Khushboo Vashi at 2020-12-28 04:45:58 UTC.

RM_6113.png

Filename: RM_6113.png

dpage commented 3 years ago

Comment migrated from Redmine: https://redmine.postgresql.org/issues/6113#note-3 Originally created by Khushboo Vashi at 2020-12-28 04:46:51 UTC.

Hi Alexey,

You can hide/unhide the nodes as per your convenience through File > Preferences > Browser > Nodes and by doing this you will achieve Server > Database > Schema > Table.

Please check the attached screen-shot for the same.

Thanks, Khushboo

Redmine ticket header update:

Name Old Value New Value
Assigned To changed Alexey Korepov
Attachment added RM_6113.png
dpage commented 3 years ago

Comment migrated from Redmine: https://redmine.postgresql.org/issues/6113#note-4 Originally created by Aditya Toshniwal at 2021-01-15 11:24:07 UTC.

No response from the author. Closing.

Redmine ticket header update:

Name Old Value New Value
Status changed New Rejected
dpage commented 3 years ago

Comment migrated from Redmine: https://redmine.postgresql.org/issues/6113#note-5 Originally created by Alexey Korepov at 2021-01-15 11:29:21 UTC.

Khushboo Vashi wrote:

You can hide/unhide the nodes as per your convenience through File > Preferences > Browser > Nodes and by doing this you will achieve Server > Database > Schema > Table. Please check the attached screen-shot for the same.

Thanks for workaround, but it isn't resolve the described problem, in tree left padding is stays too high, an we must make same number of clicks to simply lookup needed table in some database.

dpage commented 3 years ago

Comment migrated from Redmine: https://redmine.postgresql.org/issues/6113#note-6 Originally created by Alexey Korepov at 2021-04-14 12:37:31 UTC.

Here https://demo.phpmyadmin.net/master-config/ is demo of similar tool phpMyAdmin, that shows in left sidebar the list of tables in top level of tree (1), with ability to change the server in compact dropdown list (2). And all other features, that not often needed, are moved to top menu (3), here is screenshot: https://i.imgur.com/kpkFNpR.png

Will be good to have in pgAdmin something similar in left panel, maybe not as modification to current tree, but as alternative interface, that will be much comfortable for users, who works mostly with tables.

dpage commented 1 year ago

Issue closed on Redmine.