I developed something similar to Internineed's requirement for structural engineers.
This type of company has many uniquely numbered contracts on the go at the same time. With new ones added all the time and completed contracts closing down. The amount of data to store drawings, material, phases, revisions, contract documentation, work in progress values, delivery notes and other information is considerable. Resulting in huge databases. For instance, each 200 tonne contract will contain a massive amount of data. Plus once a contract has been completed it is of little interest and rarely if ever referred to later. Although the summaries always remain in the Master file for management purposes. Merging all contracts into one database was not a practical option as the main database would have been massive after five years or so. This design is manageable and easily supported, whilst remaining quick and easy to use on the local network or remote desktop.
The system consisted of a Master file that contained the summaries including material weights and surface areas. Also drawing office and manufacturing hours expended for each contract. Each contract has an individual contract database. It also contained all of the standard data settings, steel section types and other materials that may be specified. Also, the drawing office and shop floor staff names to record hours spent from timesheets. Plus client names, site addresses and other standing data. There is in-built security to prevent unauthorised staff from accessing some contract details. Typically these are timesheet data, drawing office or shop floor hours etc. etc.. There is obviously a degree of confidential data in the system that a company would not want to be seen by anyone outside of the company. Records of the staff on data entry or changes is saved by date, time and user number. Deletes are prevented, with all deletes made simply being a hidden record. A view of all deleted items is available to designated management.
When a new contract was created, basic details were entered in the Master and a contact database was created by copying a blank standard contract database to a new one with the contact number as it's name. The user simply opened the Master file and selected the contract to work on from a dropdown list, then opened the contract database required. The contract number and the name it is referred to as is clearly shown across the Master file. When a user opened a contract database, that remained the default option after closing down. Whenever they opened the Master file, the last selected contract database would also be opened automatically. For an overview of one or many contracts, that was found in the Master. As drawings and material are entered into the contract database, totals were transferred or updated into the Master. At any point in time, the Master would show the current state over all contracts, complete with all work in progress details, as well as the summary details on individual contracts. Reports and screens are used in weekly contract management meetings.
It has a complete snapshot of the whole business and the completion percentage of all contracts. With some overhead exclusions it shows the current work in progress figure. Without this type of system a company doesn't know the actual costs, weights surface areas and hours on a contract until after it has been completed. In my system you could see things going wrong, deliveries running late and cost over-runs in real time. Far better to know if you're losing money whilst it is happening than a month or two later.
So one main controlling database that can link to many and any contract database. The contract databases are opened as and when required.
On the lighter side, a contract's six stages:
Anticipation and confidence with a quotation
Euphoria and praise on receiving the order
Excitement and enthusiasm in pushing it through
Relief and pride as it is completed
Realisation of mistakes and losses
Search for the guilty