I think you might need a join table between your categories and your contractors.
Then you can create three category tables so every type of category is only stored once.
I made a quick little example file:
It's really basic and you can take this much furter if you want.
I dodn't really understand where or how you wanted to use your portal.
I made a list view and a layout with a portal example.
Let me know if this is already in the right direction.
Thanks for prompt respoonse and sample file.
I haven't yet looked in detail but it appears that the Category has to be split, although I'm happy to have the Primary and Secondary parts as one.
The Portal you mention is merely a Self Join Company Portal which shows Companies for each Category, e.g. select Contractor Plumber, and 10 Companies are listed.
I will let you know when I've had a go.