Well, I have been learning how to code for a while.
Recently I decided that I knew enough to create my own programs. Right now, I am working on a workout log program, nothing hard, and that it not been done a thousand times before by programmers. I am making it from scratch so I can learn from it.
My problem at the moment is data storing. Storing data in text files is just not efficient enough, if I have multiple logs it takes forever for the program to find what I am looking for. There is also problems if a certain number goes missing or I delete it from the text file my log will be a mess.
From what I have been searching online the way to store the data would be using something like SQL or another RDBMS. To tell you the truth, I don't what any of them are talking about half the time, some say learn SQL, others say that it's for websites only. It is very confusing for me.
So, these are my questions.
1. Is there a Database Management System that beginners should start out with?
2. Any books you might suggest or website where I could learn this from?
3. Where can I learn more about stuff like when to use a text file for data storage, binary file, or a DBMS?
If this not enough info for you to understand my problem, let me know.
Last time I asked you guys for help, you were very helpful and I trust that you guys will point me in the right direction. Thank you :)
Even though I use MS SQL Server 2008 religiously, MySQL is really great.
You could also try to create a Windows Forms C++ application with SQL Server express. It extremely easy to implement a GUI interface that way, or you could use an open source GUI library + MySQL.
C++ is not the easiest language when it comes to database driven applications and can be daunting for beginners.
Is this program supposed to run as a Server? If it's just for learning, you could get used to using pointers and store all the records in memory on program start and then write them all back to file on program end instead of working directly with the files. While it's running you can work directly with your objects using pointers which will yield excellent performance once they are loaded in house. Just beware of runtime errors that can crash your program.
C++ has try - catch statements you could use to catch expections.
I think I would agree with Helios for this application.
The big benefit of SQLite is that it uses flat file databases, meaning that you can actually move the database around easily and you don't need a database server running to access it, much more portable.
Unless you would want to store your workout logs in a central location somewhere online and have your friends do the same, SQLite will serve you perfectly.