I currently run operations for a small lab. I have built a fairly complex Access database from scratch in order to manage all budgeting, purchasing, inventory, and invoicing systems. I spend a bit of time each day maintaining/improving it. I am also currently in a year long computer science program learning c++. I would like more practice with sql was just curious if anyone had any recommendations for recreating my database in a more modern fashion.. Access works, but is a bit clunky/fragile.
Our software budget is nonexistent, so considering open source or from scratch. I have recreated all my tables in mysql, but is mysql the best way to go? As far as a front end, is there anything I can implement with c++? Or is this worth dabbling in another language for? I want something that I can both learn from but will also be useful/reliable enough to replace my Access database. Or would this be a total waste of time for how challenging building this from scratch would be?
If the goal is to build a transactional database I think mysql will do fine. Once you've built the db the only thing you need is a frontend that fills the db. Any language that supports form inputs (and field validation) will do. In college, we had to build one with PHP. But it's really up to you, C(#/++) or so is just fine.
If the goal is to report on this data, look for an ETL tool like SSIS in Visual Studio or any FOSS alternative.
Good answer. I think almost any DBMS will so fine in this scenario, so I'd pick whatever I want to have a closer look at. NoSQL would be an ok choice as well, but you'd have to reconsider your architecture (probably).
To add to the tech recommendations, I think you (OP) might like to check into containers, maybe docker compose. That'll make your database learning easier and it might be easier to deploy as well (depending on your server setup).
I'm not going to recommend a programming language though, because there's just too much out there and it's personal preference. I like .Net with C#, Spring Boot with Kotlin etc, but any will do it and depending on what you want to achieve both might be absolute overkill. There are great frameworks for almost any modern language.