«Эффективный» - это слегка двусмысленный термин.С точки зрения требований к хранилищу наиболее эффективным решением будет битовое поле - но это приведет к очень неэффективным запросам - и будет трудно адаптироваться к изменениям в модели данных.Если бы это был я, я бы просто нормализовал это:
CREATE TABLE responses (
respondent_id INTEGER NOT NULL, /* to reference the set of answers */
row_id VARCHAR(1) NOT NULL,
col_id INTEGER NOT NULL,
response ENUM ('NO', 'YES') NOT NULL
PRIMARY KEY (respondent_id, row_id, col_id)
);
Я бы также использовал вложенный массив для эмуляции многомерного массива в PHP:
$rows=array('A', 'B', 'C', 'D', 'E', 'F');
for ($y=0; $y<7; $y++) {
print "<tr>\n";
for ($x=1; $x<=7; $x++) {
print "<td><input type='checkbox' name='box[$x][$y]'></td>\n";
}
print "</tr>\n";
}