Я думаю о том, как представлять сложную структуру в базе данных SQL Server.
Рассмотрим приложение, которое должно хранить сведения о семействе объектов, которые имеют некоторые атрибуты, но имеют много других, которые не являются общими. Например, коммерческий страховой пакет может включать ответственность, мотор, имущество и страховое покрытие в пределах одной и той же записи политики.
Это тривиально реализовать на С# и т.д., поскольку вы можете создать политику с набором разделов, где раздел наследуется по мере необходимости для различных типов обложек. Однако реляционные базы данных, похоже, не позволяют это легко.
Я вижу, что есть два основных варианта:
-
Создайте таблицу политики, а затем таблицу разделов со всеми необходимыми полями для всех возможных вариантов, большинство из которых будут пустыми.
-
Создайте таблицу политик и многочисленные таблицы разделов, по одному для каждого типа обложки.
Оба эти альтернативы кажутся неудовлетворительными, тем более что необходимо писать запросы во всех разделах, что связано с многочисленными объединениями или многочисленными нулевыми проверками.
Какова наилучшая практика для этого сценария?