Question: How do you organize the Dockerfiles belonging to a project when you have one Dockerfile for the database, one for the application server, and so on? Do you create some sort of hierachy in the source?
A big enterprise project can't consist of only one Dockerfile?

Answer: 
In Intellij, I simply changed the name of the docker files to \*.Dockerfile, and associated the file type \*.Dockerfile to docker syntax.
When working on a project that requires the use of multiple dockerfiles, simply create each dockerfile in a separate directory. For instance,

app/
db/

Each of the above directories will contain their dockerfile. When an application is being built, docker will search all directories and build all dockerfiles.