What Should be used, database or exel file or CSV files to keep track record while creating a desktop application? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

What Should be used, database or exel file or CSV files to keep track record while creating a desktop application?

I am working on project for billing and inventory management. I am planning for for an desktop application which can run offline also. If I go for a django, user need to run server manually each time (as much I know). As a newbie, I am bit confuse which way I should go. I need to keep data for customers, inventory items etc. What Should be used, database or exel file or CSV files to keep track record? Any solution or path wil be helpful

2nd Jul 2021, 6:33 PM
Vishvajit Bhagat
8 Answers
+ 1
Yes, you are right about django. A desktop-app with e.g. c# or java - or even python and tkinter - could store data to a local database. Then users would not have to be online and you would need a server running e.g. djano only if you want to sync the data.
3rd Jul 2021, 7:38 AM
Fu Foy
Fu Foy - avatar
+ 1
https://www.milesweb.in/hosting-faqs/sqlite-vs-mysql/ :" SQLite is a server-less database and also, self-contained. Sometimes it is referred to as an embedded database which means the DB engine runs as a part of the app." I dont know, if that is the best way, but I think it will work. What will you use for exe conversion? Pyinstaller? https://pypi.org/project/pyinstaller/
3rd Jul 2021, 8:41 AM
Fu Foy
Fu Foy - avatar
+ 1
I used cx-freeze before for exe conversion. I will definitely look into your suggestions Thank you.
3rd Jul 2021, 11:26 AM
Vishvajit Bhagat
0
Hi! I think using a database might be a good way. You could use django-rest-framework as backend and when the client is online sync the clients data with the server. You could get the same result, storing the data in csv, but I think it's easier to work with data from a database, than reading a csv file. Hope that's helpful(?)
2nd Jul 2021, 9:47 PM
Fu Foy
Fu Foy - avatar
0
Hey Fu Foy, thanks for the solution, Yes, I also feel database is more convenient to work than CSV, but if we go for django, user need to online for accessing the site or in case of local server, user has to run server manually? Thanks
3rd Jul 2021, 3:55 AM
Vishvajit Bhagat
0
Then in case of python and tkinter, which database will be better to use considering the .exe package conversion
3rd Jul 2021, 7:42 AM
Vishvajit Bhagat
0
https://pypi.org/project/flaskwebgui/ I have no exp with that, but that seems to be cool
3rd Jul 2021, 9:06 AM
Fu Foy
Fu Foy - avatar
0
For your billing and inventory management desktop application, the choice between using a database, Excel file, or CSV files largely depends on the nature of your application, the volume of data, and future scalability. Databases are generally the go-to choice for applications that require data integrity, efficient querying, and scalability. A local database, like SQLite, is particularly suitable for a desktop application that needs to run offline. SQLite is embedded within the application, eliminating the need for a separate server. This provides a robust data management system without the complexity and overhead of a full-scale database server. It's ideal for ensuring data integrity, supporting complex queries, and handling moderate to large datasets efficiently. Excel and CSV files are simpler and might seem like an attractive option for smaller datasets or less complex applications. They are easy to set up, require no special database management skills, and can be directly manipulated using common software like Microsoft Excel. However, they fall short in terms of scalability, data integrity, and support for complex queries. Moreover, managing relationships between different sets of data (like customers and inventory items) can become cumbersome and error-prone as your data grows. Given that your application involves managing customer and inventory data, a local database like SQLite would be a more suitable choice. It strikes a balance between simplicity and functionality, offering the robustness needed for handling relational data efficiently without the need for an always-on server. This approach would also allow for easier scaling and potential future enhancements, like migrating to a more robust database system if the need arises. https://leapswitch.com/ https://cloudjiffy.com/
15th Dec 2023, 12:05 PM
abhishek
abhishek - avatar