Хорошо, когда вы говорите «В таблицу компаний, добавьте критерии текстового поля, которые содержат массив критериев, требуемых по порядку», который пахнет так, будто таблица компании хочет нормализоваться: вы можете разбить каждый критерий в одном из 15 столбцы с именем "criterion1", ..., "criterion15", где любой или все столбцы могут по умолчанию иметь значение null.
Для меня вы на правильном пути с таблицей отчетов. Каждая строка в этой таблице может представлять один отчет; и, как вы говорите, может иметь соответствующие столбцы «критерий1», ..., «критерий15», где каждая ячейка говорит о том, насколько хорошо компания справилась с критерием этого столбца. В каждой компании будет несколько отчетов, поэтому вам понадобится столбец с датой (или номером отчета или подобным) в таблице отчетов. Тогда дата плюс идентификатор компании могут быть составным ключом; и идентификатор компании может быть неуникальным индексом. Как и в отчете дата / номер / некий идентификатор. И не забудьте столбец для идентификатора сотрудника, который сообщает.
Любой и каждый столбец критерия в таблице отчета может быть нулевым, что означает (возможно), что сотрудник не отчитался по этому критерию; или что этот критерий (столбец) не применяется в данном отчете (строка).
Кажется, это будет нормально работать. Я не вижу, что вам когда-либо нужно объединяться. Это выглядит совершенно просто, по крайней мере, для этих наивных и невежественных глаз.