1

I am writing a Telegram bot script which needs to store inputted user data. I have no real experience using database management systems such as SQLite, MySQl and Postgres. I don't need my application to scale to thousands of users and since SQLite is included with python, it is the choice I have been leaning towards.

Could someone else share their opinion on which database system would be correct for this type of project?

  • 1
    The answer is always "it depends", and you haven't provided a lot to go on. What OS? How much experience to you have with Python? How many users do you expect to use it at one time? Do you need to access data outside your program? How many tables might you need? Would a simple XML file(s) solution meet your needs instead of managing a SQL install? – brichins May 7 at 22:40
1

There is alway an "it depends" aspect to these type of questions, however let's give it a try. I will give 3 scenario's which you have determine which best describes your situation.

Proof of concept / v1

If you just create a simple chatbot, without expectation of large traffic you might as well use any DBMS of choice. SQLite might be perfect for a proof of concept. No need to make it perfect on your first try.

For a regular user group

You can consider one of the many general use databases. SQL or NoSQL, whatever fits. I personally prefer SQL because you can more easily force data integrity and relationships between data, but some people prefer NoSQL because of the freedom it provides. There are many articles that discuss both the pros and cons of both camps. I will not expand on that here, please just take the time to seek out your own preference. As for SQL I would recommend looking into MariaDB or Postgres and for NoSQL just Mongo.

For large scale chat

If you are expecting to have a very very big group of users that will talk to your chatbot all the time, it might be a good idea to "bring out the big guns". Why don't we just borrow the techniques used by well known big companies that provide chat, like Facebook using HBase and Discord using Cassandra. Which interestingly are both Apache projects.

Changing out You might want to read up on ORM's where you can switch the underlying Database on the fly when supported.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.