Hi- I think that's a good question and this my (current) solution.
I've set up database (PostgreSQL + django) with, among other things, a "fastqfile" table with column "filename" (primary key), "md5sum" column, and a "library_id" column which has a foreign key to a "libraries" table with information about each library.
In this way when I get new fastq file(s) I'm forced to give to each fastq a parent library, which in turn has to be described in the database. It works ok-ish. Things stay organized and I don't get orphan files or name collisions. Main issue, maybe, is that when I get a new file I need to spend some time doing the bureaucracy work to comply with the database requirements instead of going straight to the data analysis, but I guess this is somewhat inevitable.