2016-05-22 11 views
0

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

  1. Таблица для учетной записи и другая таблица для дополнительной ссуды атрибут с отношением 1 к 1.
  2. Две отдельные таблицы.
  3. Одна таблица со всеми полями и игнорирует атрибут кредита для базовой учетной записи .

ответ

0

Вы должны пойти на первый подход. Для отношения мощности вы должны рассмотреть, какие данные будут храниться в каждом объекте. Собираетесь ли вы сохранить историю. В соответствии с моим пониманием вышеперечисленных объектов вам следует обратиться за отношения «один ко многим».

0

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

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

Вариант 3 является универсальным подходом. Большим преимуществом является простота моделирования и запросов. Большой недостаток заключается в том, что вы не сможете реализовать ограничения NOT NULL для столбцов, которые должны быть там для некоторых типов учетных записей, но не для других.

Существует 4-й вариант объединения первых двух вариантов, которые обеспечивают решение, аналогичное абстракции партии для людей и организаций. У вас есть 3 таблицы: 1) таблица учетных записей, которая обрабатывает основные элементы идентификатора учетной записи, баланса, владельца и т. Д .; 2) таблица ссудного счета, которая содержит дополнительные столбцы и ссылку на идентификатор учетной записи; и 3) базовую таблицу учетных записей, которая имеет только ссылку на идентификатор учетной записи. Это может показаться излишним, но оно создает систему, которую вы можете продлить без изменений. Я использовал шаблон много раз.

 Смежные вопросы

  • Нет связанных вопросов^_^