I’m currently implementing a database for a small research group to manage data across multiple (sometimes related) projects with multiple users that should have restricted access to only some tables. The actual database itself was relatively straightforward to design and build in PostgreSQL, with a super class implementation being the only thing that could be considered tricky. Ideally, we would have a professional hired for this task, but I’m the closest thing my group is going to get (I have a lot of programming experience, and have been working with a variety of database systems over the last 10 years for a variety of mostly solo projects).
Unfortunately, my position is only going to last a couple more years, and researchers in my field generally do not have experience designing or administrating databases. So I have to set it up so that the database is fairly easy for this group to manage on their own. Fortunately, we have IT staff that will handle all the low-level hardware/software stuff, so all that’s left for the group is the in-database tasks like creating/managing tables, users, etc.
The requirements list is pretty simple:
- Free. Mainly, we don’t have extra money to spend on specialized tools/interfaces (the actual web hosting isn’t a financial issue, though)
- Easy to host/long-term reliability. My main fear with overly specialized tools is will they work long-term? Something like HTML + PHP is an example of something that appears to have stood the test of time, but my impression is that PHP might be a bit dated (I could be wrong on that, though)
- No downloads/custom software installation for the users. Basically, all they should need is a web-browser.
- Data import/export as CSV files. I expect data input to pretty much be in the form of CSV files. It saves the trouble of trying to develop custom forms for each project, especially for future projects that will need custom tables.
- Enough database interaction capabilities to do things like create/manage users, tables, etc. I pretty much expect this to be possible with any language that can interact with a database, but it doesn’t hurt to specify it.
- Data logic. Basically, the ability to do some data checks and generate some unique IDs for users for field data and samples. Again, expect this to pretty much be doable with any setup, but specifying it anyway.
An example answer to my question might be "HTML and PHP", but I want to see what other current/modern approaches exist before deciding on anything.