This is a huge subject and one close to my heart.
A lot of people build new tool assemblies as needed, those with more money have tool asseblies 'ready to go' on the shelf. Where I work we have a standard tool pack in the machine and will program around that, because even if the cycle time is a little longer we know thatwith small batch sizes the saving in set-up time will more than compensate. It is only with great reluctance will we add a new tool to the pack and the type of tools that force to do that are taps, threadmills, reamers and formtools. We tell our designers what preferred hole sizes and threads we want and they do their best to work around them.
We have a tool database held in an Excel spreadsheet that is kept up by the people on the shopfloor and I treat this as the 'Master' and at regular intervals check this database against the one held in the CAM system, striving to keep the info up to date as in 5 axis work, the wrong stick-out or holder can be disasterous. This system isn't perfect as it relies on me keeping my CAM database correct and on the shopfloor people keeping their database correct, but we have disciplined ourselves. We also use the spreadsheet database for creating set-up sheets.
Each tool has a unique ID that is independent of the CAM and the machine and it this number that is called up on the tool sheet, but then we have the luxury of working in Heidenhain which can call tools by name or number. If you are working in Fanuc or some other control then things are not so straight forward because then you must cross reference the ID to the pocket number.
I did build some macro's into the spreadsheet to make sure silly errors didn't occur in data entry and at some point I would like to get away from using Excel as it isn't the most stable database in the world when working over a network; what I replace it with is still unclear.
There are moves in the CAM world to provide API's for linking the CAM tool database with outside sources such as TDM Systems, WinTool etc. but these Tool Management systems are very expensive and for small companies are a sledge hammer to crack a nut.
To my mind, it is how much effort you want to put in to maintaining a tool management system that is the crucial question. Drawing up the paperwork to make sure a tool is set up correctly each time is a chore that must be balanced against the cost of having tool holders etc. sitting idle on the shelf.