Вы можете сделать что-то простое:
+-------------------+
| RowName |
+-------------------+
| +uid int |
| name nvarchar(50) |
| position int |
+-------------------+
+-------------------+
| ColumnName |
+-------------------+
| +uid int |
| name nvarchar(50) |
| position int |
+-------------------+
+-------------------+
| Value |
+-------------------+
| +row int |
| +column int |
| value int |
+-------------------+
Обратите внимание, что '+' выше обозначает первичный ключ (поэтому строка и столбец вместе в таблице значений будут составлять первичный ключ).
Это позволит вам быстро вывести имена строк и столбцов в соответствующие таблицы (сохраняя при этом положение, в котором имя должно появляться при воссоздании макета), и обеспечит быстрый способ хранения данных на основетабличный макет.
Этот подход на самом деле не имеет каких-либо внутренних "отказов", кроме того, что вы не можете случайно скопировать пару строка / столбец, но это быстрый и грязный способ сохранить то, что выПытаюсь представить.