• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Android App, Let's Choose the Database

Pd89

Lurker
Mar 26, 2021
3
1
Hey Folks,

Yes, I want to launch a poll about the right choice of the database.
Let's analyze together the pros and cons of the most famous databases to define the correct choice for our app. Indeed of course, the choice varies depending on the final purpose of our App, so let's try to give a general line to follow:

Firebase: A NoSql with many libreries that make our life easier,like an automatically managment of Auth ID, registration of users, modify passwords and email..etc.. but cons? for sure, you have to planning the structure of your database very well at the beginning, cause change the structure if project is in advanced stadium, make this choice not confortable, especially if you have to change completely the part of database rules... objects grafted for collections then inevitably require careful analysis before the project begins, to avoid heavy refactoring of the structure (less flexibility). Definitely not indicated if we want to create a social network type app ... Do you agree with me? Do you think this statement is also valid for Cassandra,MongoDB and others NoSQL Databases?

SQLite(Base knowledge):
PRO:
Extremely fast and efficient related SQL Database.
extremely portable, cause the one file structure.
The library is simple to set up and simple to use.

CONS:
Advanced databases provide user support, i.e. control of connections through a set of database and table access privileges. Given the purpose and nature of SQLite (no high level of multi-client concurrency), no such feature exists.
For most applications it is excessive to use an additional process to test the operating logic (ie the main purpose of the application: functionality).
One of the limitations of SQLite is the write operations. This DBMS allows a single single write operation for every single instant, thus allowing for limited throughtput.This make SQLlite bad choice for multi-user platforms,for my opinion.


MySQL: The most popular related DBMS.
It must be said that, given the popularity of the product, there are a lot of third-party applications, tools and built-in libraries that give a great deal of help on many aspects of using this RDBMS.
PRO:
MySQL supports a lot of the SQL functionality that is expected of an RDBMS, directly or indirectly.
In MySQL we find a lot of security-related features, some quite advanced.
MySQL is capable of handling a large amount of data, also it can be scalable if needed.
CONS:
As it was designed, MySQL does not intend to include all possible features and some of those present have limitations. These missing features may be required by some latest generation applications.
The way MySQL treats certain features (such as references, transactions, auditing, etc.) makes it a little less reliable than other RDBMSs.
Since MySQL does not [try to] implement the full SQL standard, this tool is not fully compatible with SQL. Should you ever need to switch to such RDBMS, the transfer from MySQL will not be easy

POstGresSQL:Compared to other RDBMS, PostgreSQL stands out for its support for the categorical and integralist functionality of object-oriented and / or relational databases, for example the complete support for secure transactions, i.e. Atomicity, Consistency, Isolation, Durability (ACID)
PRO:
PostgreSQL is open source and free and also a powerful relational database management system.
PostgreSQL is backed by a dedicated and knowledgeable community that can be accessed through knowledge base sites and Questions / Answers for free, 24/7.
PostgreSQL is not only a relational database management system, it also manages object-oriented databases, with support for nesting and more.
CONS:
For simple but burdensome reading operations, PostgreSQL can be excessive and may appear less performing than its counterparts, such as MySQL
Unless you are willing to spend time, energy and resources, creating replication with MySQL may be easier for those who have no experience with systems and database administration.

So what do you think?Which is for you the best choice for:

-Static app (No multiple connections,no chats,not graphs structure)
-Chat app in real time
-Videogame app without online challanges
-Videogame app with online challanges
-Social Network style app, no graphs style (Instagram)
-Social Network style app, graphs style (Facebook)

I'm curious to listen your opinions!!

PS: Sorry for my English, I'm a bit rusty...and I'm Italian! :p
















,
 

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones