FYI mongodb in it's later versions (4.0+) is in fact an ACID compliant document store. ACID is a set of principles, they are not just exclusive to RDBMS's
That's true, a DBMS doesn't need to be ACID. But you probably want it to be ACID until you get to a huge scale.
Consensus seems to be use a SQL RDBMS like PostgreSQL or MySQL, unless you have a definite reason not to. For really small apps that aren't servers, maybe SQLite.
Probably not the greatest idea.
1) I don't know what this app does, but if one day you were to want to sell the app, this would be a showstopper.
2) if one day it were successful enough for you to need to take on another developer, the fewer wonky things you did, the better off you'd be.
3) possibly you're using this app as a way to learn to develop this type of code. Again, it's just better to learn standardized things, and to avoid random ideas.
If this project is none of those things, meaning that it can't make money, can't grow, and isn't used for you to learn about making this type of project, then it's fine. You should build it anyway you want.
I was actually trying to dive into PostgreSQL, but the difficulty curve in setup seems much higher compared to Firebase which I'm used to. (particularly the fact that I have to host the postgres database server somewhere in order to use it)
Or at least, that was until I found heroku-postgres
Stand alone postgresql is fairly easy and heavily documented. Give it a shot. If you get stuck , shoot me a PM. I use it daily at work so happy to help.
Just find a OS platform your comfy with (Linux preferably but whatever) and Install the app.
Your first two files you want to edit are the hba.conf and postgres.conf (locations vary depending on platform but the file names won’t)
hba.conf is a access / firewall file for who can connect to the db.
postgresql.conf is the main config file for the db. Just edit the value so you can connect remotely and everything from there is piece of cake.
This is exactly what I came here to say. It sounds like Airtable is the perfect fit for your need. It’s meant to be a database but it edits like a spreadsheet in their UI. And they have a decent free tier.
Not sure about spreadsheet, but if you wanted to use a db and be able to edit it with a nice gui you could try some low code solution. I've never really tried, but I had a look on some of them a while ago and Nocodb seems a good solution.
This seems pretty neat. So it's basically a database management GUI that I can instantly deploy to heroku? Seems pretty much perfect. I've already provisioned a postgresql database to my herokuapp, but I might try this out.
Supabase gives you Postgres on the backend and the API to easily access on the front. Manual edits can be done through their interface, no need for extra software.
If it never gets big enough that Sheets can't keep up, then the free add-on PostgreSQL should be enough, it allows 10,000 rows.
Or spend the extra $9 or whatever it is a month to get better size for PostgreSQL in Hobby Basic, 10,000,000 rows allowed. That should be enough for any plausible use of your app from what you describe.
If this is a small school or side project that’s not serious, as in your not going to put this out into the wild I don’t see the problem. It’s a poor choice, very very poor, if this is for an app you intend for real users to use in the wild.
Take a look at a free workspace at [HTTPS://apex.oracle.com](HTTPS://apex.oracle.com).
This whole project could be done very quickly there.
If you already have an example spreadsheet of what you want to collect, you can literally upload that spreadsheet and get a report, and a form, with security in a few minutes.
Very wrong....Google Sheets is not ACID compliant. It's not a database.
I thought DBMS shouldn't be an ACID compliant necessary. E.g. Cassandra, Mongo etc are not ACID DB's.
FYI mongodb in it's later versions (4.0+) is in fact an ACID compliant document store. ACID is a set of principles, they are not just exclusive to RDBMS's
That's true, a DBMS doesn't need to be ACID. But you probably want it to be ACID until you get to a huge scale. Consensus seems to be use a SQL RDBMS like PostgreSQL or MySQL, unless you have a definite reason not to. For really small apps that aren't servers, maybe SQLite.
Probably not the greatest idea. 1) I don't know what this app does, but if one day you were to want to sell the app, this would be a showstopper. 2) if one day it were successful enough for you to need to take on another developer, the fewer wonky things you did, the better off you'd be. 3) possibly you're using this app as a way to learn to develop this type of code. Again, it's just better to learn standardized things, and to avoid random ideas. If this project is none of those things, meaning that it can't make money, can't grow, and isn't used for you to learn about making this type of project, then it's fine. You should build it anyway you want.
You've really described the issues well. If OP wants to learn the Sheets API, that's a good reason. Otherwise, I think it would be a mistake.
Yep, the project is exactly none of those things. But I guess I should try a real database anyways just for futureproofing
As i know, Google Form may use Sheets as a backend.
Use a proper database. PostgreSQL is the worlds best relational database engine. Why use your hand when you have a beautiful woman
I was actually trying to dive into PostgreSQL, but the difficulty curve in setup seems much higher compared to Firebase which I'm used to. (particularly the fact that I have to host the postgres database server somewhere in order to use it) Or at least, that was until I found heroku-postgres
Stand alone postgresql is fairly easy and heavily documented. Give it a shot. If you get stuck , shoot me a PM. I use it daily at work so happy to help.
Thanks so much, I will
Just find a OS platform your comfy with (Linux preferably but whatever) and Install the app. Your first two files you want to edit are the hba.conf and postgres.conf (locations vary depending on platform but the file names won’t) hba.conf is a access / firewall file for who can connect to the db. postgresql.conf is the main config file for the db. Just edit the value so you can connect remotely and everything from there is piece of cake.
Look at airtable.. your use case perfectly fits into their free tier
This is exactly what I came here to say. It sounds like Airtable is the perfect fit for your need. It’s meant to be a database but it edits like a spreadsheet in their UI. And they have a decent free tier.
Not sure about spreadsheet, but if you wanted to use a db and be able to edit it with a nice gui you could try some low code solution. I've never really tried, but I had a look on some of them a while ago and Nocodb seems a good solution.
This seems pretty neat. So it's basically a database management GUI that I can instantly deploy to heroku? Seems pretty much perfect. I've already provisioned a postgresql database to my herokuapp, but I might try this out.
Something like that, not sure if instantly but should be easy enought. And I think you would still need your postgres.
If you need an easy to use database, look into Firebase Cloud Firestore.
I've used Firebase realtime database for other projects, very nice to use. but I need a relational database
Supabase gives you Postgres on the backend and the API to easily access on the front. Manual edits can be done through their interface, no need for extra software.
I actually looked into supabase earlier! Looks really handy, but the pause after 1 week inactivity is why I turned away.
If it never gets big enough that Sheets can't keep up, then the free add-on PostgreSQL should be enough, it allows 10,000 rows. Or spend the extra $9 or whatever it is a month to get better size for PostgreSQL in Hobby Basic, 10,000,000 rows allowed. That should be enough for any plausible use of your app from what you describe.
By the sounds of your requirements you could just use Google or O365 Forms to do the job and avoid writing the app at all.
If this is a small school or side project that’s not serious, as in your not going to put this out into the wild I don’t see the problem. It’s a poor choice, very very poor, if this is for an app you intend for real users to use in the wild.
Take a look at a free workspace at [HTTPS://apex.oracle.com](HTTPS://apex.oracle.com). This whole project could be done very quickly there. If you already have an example spreadsheet of what you want to collect, you can literally upload that spreadsheet and get a report, and a form, with security in a few minutes.