Это классическая проблема, которая сводится к вашему собственному мнению.У меня был такой случай много лет назад, и я пошел за обобщением параметров в одной таблице.Затем я создал вторую таблицу, которая содержала описания параметров, основанных на профиле, и флаги, для которых они были обязательны, необязательны или игнорировались.
Вы можете указать следующие параметры:
Длина: Универсальнаядля всех, нет?
WidthOuter1: может быть высота квадрата или прямоугольника, радиус трубы и т. д.
WidthOuter2: игнорируется для трубы и квадрата, требуется для прямоугольника
WidthInner1: игнорируется для твердых объектов, требуется для пустотелых.Рассматривается так же, как WidthOuter1, т. Е. Радиус для труб, размер квадрата, первое измерение для прямоугольников
WidthInner2: те же идеи, что и для WidthOther2 и Widthinner1
... И, возможно, другие ваши свойства приведутк тому же обращению.