You might want to consider a commodity based approach. Likely much more up front work when so many items are involved, but provides the most powerful & flexible interface, I think. You'd need a table for each commodity type as well as tables for each sub-type for a given commodity parent. The sub types are linked to the parent id. So Fasteners, Adhesives, Fluid Handling might be 3 first level types. Screws, nails, spikes, tacks... are children of fastener. Wood, metal, epoxies... are children of adhesives. Valves, pumps, tanks, hoses... are children of fluid handling. And so on. These tables contain description fields to guide the user in choosing the correct commodity codes when assembling the code for each part. A commodity table containing a link to each part ID contains the entire commodity code in it's separate fields (yes, this can result in many Null fields in some rows).
With this setup you can search for any part that meets all of the selected criteria chosen from the commodity combo boxes on a search form. Your search might be on
F |
fastener |
SC |
screw |
MA |
machine |
DIA |
1/4" - 1/2" |
LENGTH |
.5" - 1.5" |
Note that for 1/4" - 1/2", the actual commodity characteristic identifier would be the row id, not the string 1/4" - 1/2".
Can't recall if they worried about labels for the search form combos (the 3rd might be diameter for some parts, but not for others) or if they were just presented generically such as Level 1, Level 2, etc. This is how it was done where I worked, where I'm sure the parts table numbered in the millions since the commodity table identified if the part was in the plant stores system or was strictly supplier based. As I said, a likely a lot of work, but the more parts involved the more valuable it would become. You can index the commodity fields, but AFAIK, fields containing a composite set of keywords cannot be indexed.
Last edited by Micron; 06-06-2017 at 12:32 PM.
Reason: clarification
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.