Является ли Наследование сущностей лучше через одну таблицу или несколько? - PullRequest
1 голос
/ 29 июля 2010

У меня есть таблица с информацией о соглашении.Это работает хорошо для 95% соглашений, которые мы записываем.

Но есть определенный тип соглашения, который потребовал бы еще приблизительно 6 полей для сбора информации, специфичной для этого типа соглашения.

Мой вопрос: лучше ли просто добавить эти 6 полей в существующую таблицу соглашений, зная, что информация бессмысленна для многих записей соглашений, или лучше создать другую таблицу с отношением 1: 1 с исходной таблицей соглашений?продлить его в случае этих особых типов соглашений.

Ни один из этих вариантов не слишком привлекателен для меня, но я хотел знать, считался ли один из них лучшей практикой, чем другой, когда у вас есть выбор.1007 *

Спасибо за любую помощь.

Ответы [ 4 ]

2 голосов
/ 29 июля 2010

Несколько столов, вероятно, ваш лучший выбор с точки зрения расширяемости.Хотя в настоящее время у вас есть один тип соглашения, требующий дополнительных полей, само существование такой вещи предполагает, что подобные варианты в будущем стоит учесть в вашем дизайне.Когда возникают другие варианты, подход с несколькими таблицами позволит вам корректно включать эти типы соглашений и их характерные атрибуты.

Кроме того, стоило бы рассмотреть атрибут соглашения_type (или что-то подобное) в вашей таблице суперклассаслучаи, когда вам может потребоваться выполнить анализ типа соглашения, не вызывая при этом соединения соединения с таблицами подклассов.Предполагаемое использование данных будет вашим руководством относительно того, имеет ли смысл такой атрибут.

0 голосов
/ 29 июля 2010

Надеюсь, это говорит само за себя.

agreement_model

0 голосов
/ 29 июля 2010

Это зависит.

Запрашивать одну таблицу проще, а 6 дополнительных полей не так уж много для дополнительного хранения. Если количество строк в вашей существующей таблице мало, или количество существующих столбцов уже довольно велико, то в итоге я бы добавил дополнительные поля в существующую таблицу.

С другой стороны, если это изменение приведет к значительному увеличению размера и без того большой существующей таблицы, определенно стоит подумать о создании новой таблицы.

0 голосов
/ 29 июля 2010

Мой выбор - отдельная таблица, потому что для 95% соглашений это бессмысленная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...