I'm using Derby in an open-source project and I'm debating this question with myself. As I haven't come up with a good answer, I thought that I would seek some help.
The program in question is extensible in that various kinds of data (that could be related to other kinds) will be stored in it, possibly even types that we haven't imagined yet. So the question is, would it be better to keep the number of different tables small and use the same tables for all the data or would it be better to use separate tables for each type of data. In the one case, it would might be easier to find all entries that relate to a given subject (even if they aren't the same kind of data), but key files would (of necessity) get large. In the other case, key files should be more manageable, but multiple queries would be required to find all the data records that relate to a single subject. I expect that DB sizes could easily hit tens of thousands of records. I'm not that experienced with database management issues, so I find myself at a loss on picking an approach that would be best overall. Ace
