is it fine if we have a few hundreds of work parties..
Lets say i have a tournament for which a contestant enrolls. Is it the best way to save it as a Contestant work party? If yes can we have many work parties like this or should we create a separate data type.
Workparties are stored in the BLOB. While the amount of information per contact is not that large, it could become significant depending on the number of concurrently active cases. Contestant information for a Contest is only used at certain points in the Contest's life cycle.
You could also run into a performance issue should the case attempt to display those workparties, which is normal.
For that many persons associated with a case I would store their information externally as Data-Party-Person instances.
A Contestant can participate in multiple Contests. You could define a Link-Contestant class that associates every unique Contestant/Contest combination.
A Link-Contestant List Data Page would declare two ID parameters, Contestant and Contest. Supplying the ID for one would return a List of the other.