Part of the problem(in my view) is a clear definition of the issue to be resolved.
You have a number of gas cylinders.
Each cylinder is produced by a Manufacturer.
Each cylinder has a specified wall thickness.
Each cylinder has an Identification number.
Cylinder Identification numbers are listed as a Range of Identification numbers.
Cylinders in Each Range of Identification numbers has an associated Production Date.
Cylinders in Each Range of Identification numbers have a specified Gas Service.
First problem is that identification number ranges overlap in at least 1 case(based on your sample).
So identification number alone does not identify a specific cylinder in all cases.
Code:
To find the wall thickness of cylinder xyz, the steps involved would seem to be:
-who is the manufacturer(search)
-within that manufacturer what is the Identification Number(search)
-display wall thickness and other details
OR
-enter the Identification number
-if not an overlapping range then
display wall thickness and other details
-if overlapping, then
enter the Manufacturer to resolve the overlap, then
display wall thickness and other details
The bigger question may be how you will record the data in your table(s) since .
Who will use the application.
Seems you could mock up a search form with some sample data, review same with colleagues and refine your development. Either approach, Ajax or Alan, would get you what you need more efficiently that searching through paper records.