I need to create a database to store Jobs.
Each Job can have 1-* Step
Each step is classified as one of either Type A, B or C.
Each Type has specific details and other tables that join on them so putting them into the Step table is not an option.
This is depicted in the diagram below;
In this design there is a conditional join between Step and TypeX tables. I have read around and cannot find best practices for this kind of scenario, this feels very messy to me but i can't find a way around it. What would anyone else do?

TypeXIdfields, it makes perfect sense. The problem I have with @George.Palacios comment is that I would have a lot of NULL values throughout this table where 2/3 fields do not apply to the type represented in the row. Additionally, there are more tables that come off eachTypeXtable unique to each type. – Intern87 May 23 '17 at 13:11