Need help with difficult table modeling situation Database newbie here with no formal training, trying to train myself.  I was looking for a more difficult case to model and came up with following.
Hypothetical ice cream shop where there are containers (small cone, large cone, small, medium and large cups) each with a price and a number of scoops for each.
There are flavors with a price per scoop, and multiple flavors can be used for containers that can have multiple scoops.
There are toppings where just for simplicity I am limiting to one topping per final product including none.
I cannot understand how to get from these product parts to the Order_Details table.  I am used to looking a single Products table that relates to an Order_Details table that relates to Orders Table, but I cannot comprehend how to get from the Containers, Flavors and Toppings tables I have designed to the Orders_Details table.
I am requesting some ideas on the best way to model from my product parts to the Order_Details table.

Please advise.
You probably need a linking table called ContainerFlavors (or IceCreamCombinations for something more sensible) for the many-to-many relationship between Containers and Flavors.
That linking table would have it's own unique ID column, and purely store ContainerID and FlavorID. The primary key on that table would be it's ID column and there would be a foreign key on ContainerID and foreign key on FlavorID (and basically would store every possibly combination of Containers and Flavors).
You can store this linking table's ID column in the your Order_Details table.
You can expand the linking table out to store the ToppingID as well (with a foreign key to Toppings) for every combination of Containers, Flavors, and Toppings.

So after some sitting down and modeling out your example, I realized your example is very similar to a manufacturing schema, which is why it's a litte more complex. Please see the schema I came up with below (please ignore any minor semantical differences such as casing, compared to yours). In this example schema the term &quot;Combination&quot; can be thought of as synonymous to &quot;FinalProduct&quot; (feel free to rename things on your end, as needed).

In this schema you have an Order which can contain multiple OrderDetails, where each OrderDetail has one Combination (final product), but the same Combination can be used on multiple OrderDetails (e.g. if two people order &quot;a cone of chocolate ice cream with hot fudge&quot; combination).
The Combinations table is a distinct list of final products. It has a one-to-many relationship with the CombinationsBom table. (BOM stands for Bill of Materials in the manufacturing industry, and is a type of mapping table that contains all the components that make up a final product. In this case all the container + flavors + topping combinations to make up the final product Combination.) Every row in the CombinationsBom table is the Container with it's Flavor or Topping selection. Multiple rows can exist for the same Combination (hence the one-to-many relationship). Therefor a Combination that is made up of a two scoop Container and has no Toppings should have two rows in the CombinationsBom table, one for each Flavor. (Note since BOM tables contain every possible combination of the final products, they are usually large tables.)
*This design actually allows for multiple Toppings in one Combination as well.
There are a few other ways to model this, or minor normalizations that can be added to my example schema, but I think this is a good start for what you're trying to achieve.
Using the above schema we can write an example query like such:
SELECT O.OrderNumber, O.OrderDate, O.CustomerId, C.CombinationName, 
    CB.BomId, CB.CombinationID, 
    CO.ContainerName, CB.ContainerID, CO.ContainerPrice, CO.NumberOfScoops,
    CB.IsTopping, CB.FlavorOrToppingID,
    CASE WHEN CB.IsTopping = 0 THEN F.FlavorName ELSE T.ToppingName END AS FlavorOrToppingName,
    CASE WHEN CB.IsTopping = 0 THEN F.PricePerScoop ELSE T.ToppingPrice END AS Price
FROM IceCream.Orders AS O
INNER JOIN IceCream.OrderDetails AS OD
    ON O.OrderNumber = OD.OrderNumber
INNER JOIN IceCream.Combinations AS C
    ON OD.CombinationID = C.CombinationID
INNER JOIN IceCream.CombinationsBom AS CB
    ON C.CombinationID = CB.CombinationID
INNER JOIN IceCream.Containers AS CO
    ON CB.ContainerID = CO.ContainerID
LEFT JOIN IceCream.Flavors AS F
    ON CB.FlavorOrToppingID = F.FlavorID
    AND CB.IsTopping = 0
LEFT JOIN IceCream.Toppings AS T
    ON CB.FlavorOrToppingID = T.ToppingID
    AND CB.IsTopping = 1

To produce these kind of results:

(Note I'm finding minor things that need to be improved in the schema design, and I'll continue to update my answer accordingly, but this should hopefully give you an idea of what's involved for modeling this kind of schema.)