Dovrei realizzare un database per archiviare informazioni relative a brani di musica classica. I dati riguarderanno, grosso modo, tre gruppi distinti di categorie: "brani", "compositori" ed "esecutori".

Poichè per un brano potrei avere sia un singolo esecutore che un ensemble, non riesco a creare la tabella "esecutori" in maniera tale da far fronte a questa eventualità.

Inizialmente avevo messo su una cosa simile:

codice:
CREATE TABLE `esecutori` (
  `id` smallint(5) NOT NULL auto_increment,
  `nome` varchar(30) NOT NULL,
  `cognome` varchar(30) NOT NULL,
  `sesso` enum('M','F') NOT NULL default 'M',
  `provenienza` tinyint(3) unsigned NOT NULL,
  `nascita` varchar(4) NOT NULL,
  `decesso` varchar(4) NOT NULL,
  `biografia` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ma, come dicevo, nell'ipotesi che per un brano debba inserire un gruppo di musicisti e non un singolo artista, la struttura attuale non mi permetterebbe di farlo. Avevo pensato di aggiungere altri due campi: "ensemble" e "caratteristiche_ensemble", ma ho difficoltà nell'estrarre i dati, ad esempio, per stampare una lista completa di tutti gli esecutori.

Senza l'aggiunta di questi ultimi due campi mi bastava fare una query con CONCAT_WS e tirare fuori nome e cognome degli esecutori. Il problema sta nel fatto che non riesco ad estrarre, distinguendo tra singolo e gruppo, gli esecutori. Avevo anche ipotizzato di creare una tabella dedicata, ma preferirei gestire il tutto, se possibile, con la sola tabella "esecutori".

Mi date qualche consiglio su come organizzare la cosa?