We want to receive orders via API from web to Salesforce. We also want order to be related to lead - so the rep can quickly see that right after he clicks on the lead. The problem is, that there are about 5 different types of orders, each of them has different fields. If that would a single object, it would be a really big one and it wouldn't make sense. Also, if we create 5 different custom object types, it would be a total mess, because for 1 lead, there will be also 4 blank objects and only 1 filled.
Just a different point of view: If this was a OOP programming problem, I would create an abstract order class and then inherit those types from it. Then, there would be an array of orders, which can be filled with any particular type.
Thanks for answer.