I have an event table that has two kinds of participants. Each event will have many participants of each type. Is it good form to have a separate table for each participant type, each related to the event table?
If your user community sees these as two separate things then model them as such. If a row for one type populates one set of columns but always leaves other columns empty whereas a row for the second type populates the columns the first type left empty, that is an indication that separating them may be beneficial. There are many other things to consider, however, such as use patterns, update frequency, the number of columns involved and the characteristics of your particular DBMS software in each permutation. You may be willing to accept a compromised design if it runs quickly.