2014-01-03 3 views
1

Представьте себе, что у вас есть несколько таблиц, которые стоят деятельности:Любые потенциальные недостатки любого из этих подклассов?

  • ProcessActivities
  • MedicalActivities
  • MaintenanceActivities
  • LogisticalActivities

Теперь вы понимаете, что все виды деятельности, то, что бы вы делаете?

  1. создать мастер-таблицу с именем «деятельностью» и добавить поле типа для значений: технологический, медицинское, техническое обслуживание, материально-технический, или
  2. создать супер таблицу деятельности, и одна таблицы для каждого подкласс только с первичными ключами, зная, что ни один из подклассов имеет уникальные поля

Я думаю, некоторые несколько плюсы/минусы, которые ввязываться в решении:

Первый подход:

  1. CRUD операции в деятельности будет означать работать в двух различных таблицах
  2. Упростить ER диаграмму
  3. Проиграйте из ограничения целостности

Второй подход:

  1. Два индексов для поддержания этих отношений будет храниться в двух разных местах
  2. Semantic

Есть ли какие-либо потенциальные результаты или другие последствия в любом из этих подходов?

+1

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

+0

Как эти данные используются? Объем ?? (DWH, нормальные данные о производстве с архивом и т. Д.) – SriniV

+1

Можете ли вы объяснить, существуют ли разные данные, хранящиеся для медицинской деятельности, в сравнении с логистической деятельностью? например столбцы в этих четырех таблицах в настоящее время одинаковы или очень близки? –

ответ

1

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

Предполагая, что есть общие данные:.

  • Плюсы: собственно абстракции данных в общих типов выполненной более подробных типов.
  • Минусы: немного более сложное кодирование, но не слишком много

Предполагая, что существует минимальные общие данные:

  • Pros: Нет действительно
  • Минусов: неправильные абстракции данных с единым целым (xActivity), распространенный в 2-х местах вместо одного.

Сколько общих данных требуется?Здесь вы ощущаете свой опыт и суждение. Вам также необходимо учитывать такие вещи, как: появится ли экран запроса, в котором перечислены все виды деятельности независимо от типа? Если да, могут ли столбцы в этом запросе помещаться в одну таблицу без искажения данных (например, для одного типа активности столбца 1 есть строка, тип 2 которой имеет дату и т. Д.)?

Непростой ответ. Боюсь.

+0

, но это мешает мне иметь некоторые логические ограничения в уровень базы данных. например, что, если я хочу, чтобы какая-либо таблица просто была связана с MedicalActivities, например, нет инструмента для создания такого типа contraint, если у меня есть только одна таблица. – alacret

+0

. Я не предлагал этого. Я предложил либо 4 таблицы (по одному для типа активности), либо 5 (по одному для каждого типа плюс таблица активности). Если у вас есть ограничения на, например, MedicalActivity, тогда ограниченный элемент данных не будет находиться в таблице действий «предка»: по определению это не будут общие данные. –

+0

да, так, я действительно искал некоторую резервную копию своей идеи о том, чтобы иметь supertable с дочерними таблицами для типа – alacret

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

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