MatrixTable
|MatrixID|Rows|Colls|
где MatrixID является первичным ключом
SeatTakenTable
|MatrixID|Row|Column|PassangerType|ElementID|
Где все столбцы являются первичным ключом композитного кода
Нет необходимости экономить свободные места, потому что при использовании этого «логического» ключа не будет никаких сговоров
Для спящего вы должны вставить две строки в таблицу SetTaken с одним и тем же ElemntID