What do you use when a non-technical client needs to edit their database?
Hi. I'm currently writing an application that creates a zero-config front-end for MySQL databases for non-technical users. As a freelance web developer, I came across the scenario a few times in the past where I've had to write a bespoke CRUD application for…
Hi. I'm currently writing an application that creates a zero-config front-end for MySQL databases for non-technical users. As a freelance web developer, I came across the scenario a few times in the past where I've had to write a bespoke CRUD application for the client, which is always a time-consuming pain, but I've always ended up doing that for want of a better option. (I know some people give their clients phpMyAdmin but I've always thought that inappropriate for the likely end-user.) Has anyone found a tool that actually works for this? Or do you just live with the bespoke-build or phpMyAdmin options?
Collected discussion
Most developers currently use tools like NocoDB . Forest admin , or low-code builders . However those can still be overkill or require. Tedious layout mapping for small client projects.
Totally understand this concern. In fact, it's why I never opt for phpMyAdmin for end-users: it's not only scary to look at but it lets you do too much. Then again, my application has more or less the same safeguards as phpMyAdmin, in that I'm mostly basing permissions on the underlying MySQL user with which the user has connected -- for example, if the user has only SELECT access, the UI won't display the "new" or "edit" buttons. As with phpMyAdmin, though, people are bound to try to connect with a user that has too many permissions for the real-world task and therefore could potentially cause some damage. I'm going to emphasize this risk in the documentation but not quite sure how to mitigate this otherwise.
Thanks, that's exactly the situation I was finding myself in. (Reassuring that it's not just me!) I went down the low-code/no-code template-based rabbit hole once but could find nothing that just worked out of the box -- basically a phpMyAdmin for non-technical users.
Agreed. Most of these tools try to do wat too much instead of just giving clients a simple, clean way to edit their data without breaking stuff.
documentation will not save you there, the person who connects is usually not the person who later breaks something, and neither of them reads it. what would have helped me is the tool being less capable by default, no delete and no bulk update unless someone deliberately turns them on. could you show the connected user's actual grants on the setup screen in plain words rather than mysql terms, something like this login can delete every row in these tables, so the dev sees what they handed over before anyone touches it?
I do see your point. However, I don't know about you but I've had many situations where I've needed to give end users -- but crucially not talking about DB admins here -- access to the database, sometimes just to look up customer/order type data, other times to be able actually to edit the data when circumstances require it. For this purpose, phpMyAdmin is too technical and confusing for, say, a customer support user and, as you say, it gives them access to the raw data with only the DB user grants as a safeguard.
Yes, I agree, simplicity is key when dealing with non-technical users (if that's not too patronizing a way to describe them), as is preventing inadvertent damage to data. Thanks, I appreciate your sharing your experience.
Yeah; no, never had a situation where I felt "let's just give CSR's raw query a/o edit access" is a good idea, regardless of how "user friendly" the means of doing so might be. If the data is important enough to build an app around, then it's important enough to protect from willy-nilly, free-form edits.
speaking as the non technical person on the other end of this, the scary part is not the ui, it is that raw table access lets you break things quietly. i edit content in my own app through a sql editor and i have wrecked rows in ways nothing warned me about until much later. what i actually wanted was the three fields i touch exposed with validation on them, not the whole table. are you planning to let the dev pick which columns are editable or is it everything by default?
I've built a few custom admin interfaces over the years, and I've found that generating CRUD screens isn't usually the hardest part. The bigger challenge is deciding what the client should actually be able to edit safely. In my experience, a lot of time goes into simplifying the interface, hiding fields they shouldn't need, and preventing accidental changes rather than exposing every database column. That design work tends to matter more than the CRUD itself.
The reason why there aren't many tools like that is probably b/c it's generally a bad idea to give end users edit access to raw data -- especially data that apps manage with rules and other safeguards. If that's not an issue for you, then just turn them loose with PhpMyAdmin; why waste time building CRUD screens?
Ein nicht technischer Nutzer hat an einer Datenbank nichts zu suchen auch nicht mit Helferleine und anderen Tools!