I'd like to make a searchable Document Management System and allow a user of this application to group documents together.
On one hand, there would be a functionality that registers/fingerprints in a global linear fashion and, on the other, there would be a functionality that associates documents into distinct groups.
How could I compromise between the two in terms of object design? Or how could I make the system more flexible overall?