Что следует учитывать при принятии решения об использовании наследования одной таблицы - PullRequest
0 голосов
/ 07 марта 2011

Я готовлюсь начать небольшой проект, который дает возможность использовать наследование одной таблицы.Когда я читал предыдущий пост о STI на Stackoverflow, кажется, есть некоторые сильные мнения по сторонам аргумента.

Мое приложение связано с моим увлечением скачками.Связи лошади определяются как ее текущий жокей, тренер и владелец.Жокей, тренер и владелец могут быть смоделированы с использованием трех отдельных таблиц (моделей / классов) или как один класс с несколькими подклассами посредством наследования одной таблицы.

Когда вы сталкиваетесь с таким решением, существует ли контрольный список вопросов, через которые можно пройти, чтобы определить, какой подход предпочтительнее.Я предполагаю, что использование STI уменьшит количество потенциальных объединений.Каковы другие практические соображения?

1 Ответ

0 голосов
/ 07 марта 2011

Есть несколько вещей , о которых вы должны подумать:

  1. Являются ли объекты, концептуально, дочерними от одного родителя?
    Донне используйте наследование одной таблицы только потому, что ваши классы имеют некоторые атрибуты;убедитесь, что между каждым из них и понятным родительским классом действительно существует отношение наследования ОО.
  2. Вам необходимо выполнять запросы к базе данных по всем объектам вместе?
    Если вы хотитесоставьте список объектов вместе или выполните агрегированные запросы по всем данным, возможно, вам понадобится все в одной таблице базы данных для скорости и простоты.
  3. Имеют ли объекты сходные данные, но различное поведение?
    Если у вас есть большее количество столбцов, характерных для модели, вам следует рассмотреть вместо этого полиморфные ассоциации.

Статья , связанная с , углубляется немного глубже.

...