Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm looking at developing a simple application in Java for a game which allows a user to keep track of which items they own and how much experience they have obtained while using the item. All of this data is input by the user.

What is the idiomatic/standard way to persist the data that is being manipulated (the model)? The immediate possibilities seem to be saving it to a file, serialization, databases, etc, but many of these seem to be overkill for simple text fields that don't seem to necessitate objects. What is the idiomatic/traditional way to handle something like this?

share|improve this question
    
Are you asking about how to model the data or how to persist the data? Two completely different things. –  Euphoric Mar 22 at 7:02
    
Probably more of the latter, but I'm not sure I fully understand what it is that I'm actually going to need to address, so that's surely part of it. It does sound like a database would be a valid way of handling this and would allow me to focus on my code instead of focusing on the file handling. –  Jsess Mar 22 at 14:22
    
Please, read what "model" and "modeling" means: en.wikipedia.org/wiki/Data_modeling It has nothing to with picking database or files, but how you structure the data to represent your problem domain. Also, the whole database vs. file vs. serialization is completely useless debate, because everyone will tell you to use databse. –  Euphoric Mar 22 at 15:30
    
Excellent, that's a perfectly valid answer, as I wasn't sure if this was a good place to use a database or if it would be overkill. Thanks for the clarification and answer :] –  Jsess Mar 22 at 17:53
    
note: edited to replace "model" with "persist" (context to the comments above) –  Rob Y Mar 23 at 20:36

1 Answer 1

up vote 2 down vote accepted

SQLite is a nice, lightweight database application. Some of the NoSql databases are easy to download and get running quickly, with low learning curve. I've heard Redis is pretty easy for saving simple data. MongoDB is very accessible as well, if you just use the basic features and don't worry about the complicated bits.

Managing everything in flat files on disk would work, too, but my guess is that the time it would take to define file formats, serialization, random access, and all the tricky parts -- with all the unit tests because you don't want a bug to corrupt your data -- then it would take more time and effort than just launching and learning something easy like SQLite or Redis.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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