смоделируйте абстрактный базовый класс и подклассы в базе данных

В отношении доверия моим навыкам кодирования я нахожу, что мои навыки кодирования на самом деле улучшаются, когда я использую TDD и полагаюсь на мои модульные тесты для исправления меня, когда я повреждаю тест. Вы изучаете, как использовать много функций языка, потому что можно сделать тонкую настройку для проверения предположения.

5
задан IAdapter 19 September 2009 в 07:00
поделиться

2 ответа

Существует три различных шаблона для этого, задокументированных в Паттернах архитектуры корпоративных приложений Мартина Фаулера, каждый из которых имеет разные компромиссы:

9
ответ дан 14 December 2019 в 04:43
поделиться

Это один из способов сделать это.

Вообще говоря, есть два других способа:

  • таблица для каждого подкласса: вместо того, чтобы пытаться совместно использовать базовый класс в базе данных, просто создайте отдельные таблицы для каждой.

  • таблица для каждой иерархии: поместите расширенный набор всех полей в таблицу, а также столбец «дискриминатор» и сохраните их в одном месте.

Чтобы выяснить, какая из них является правильно, подумайте о шаблонах использования:

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

Также посмотрите, что ваш инструмент поддерживает наиболее естественно. Все они работают.

1
ответ дан 14 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: