Without having the features you plan on implementing it is hard to say. Assuming that your system will:
- allow uploading of documents
- allow searching of documents based on various metadata
- allow downloadig
consider either:
- Keeping the files in a filesystem but the metadata in a database such as mysql
- Keeping the files in a filesystem but use a search engine like Elasticsearch to store the metadata.
Both of the solutions would work depending on how you want to search. The flow of your application would be:
Uploading Documents
- User uploads new document
- Assign document internal ID
- Store document in filesystem based on that ID
- Store metadata in database/elasticsearch using ID to reference the file
Retrieving Documents
- User enters search criteria
- You generate query for either database or elasticsearch
- Display results. The result will have a link with the internal ID you created
- User selects result. You use the ID to get the document