Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ / 8 сообщений из 8, страница 1 из 1
04.03.2012, 19:02
    #37690774
_TopTuk_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
Сущность Клиент имеет две подсущности - Физический и Юридический клиент. Сущность Клиент содержит атрибуты одинаковые, как для Физ та и для Юр клиента. Подсущность Физ клиента содержит атрибуты свойственные только физ клиентам, а подсущность Юр клиент имеет только атрибуты свойственные Юр клиентам. Связи показаны на рисунке.

При таком проектировании сущность Клиент имеет в качестве атрибутов свой ID и внешние ключи на первичные ключи ФИЗ и ЮР клиентов. В итоге не понятно операция с каким клиентом выполнилась - с Юридическим или Физическим, ведь кортеж в отношении Клиент содержит как ID от Физ лица, так и ID от Юр лица.

Как правильно проектируется такая ситуация, чтобы было ясно - какой клиент совершил операцию?
...
Рейтинг: 0 / 0
04.03.2012, 19:19
    #37690789
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
_TopTuk_,

а еси "посущностей" :) будет 20?
...
Рейтинг: 0 / 0
04.03.2012, 19:25
    #37690792
_TopTuk_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
ViPRos,

Много раз слово сущность написал ), для того чтобы понятнее было
...
Рейтинг: 0 / 0
04.03.2012, 20:33
    #37690841
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
_TopTuk_ведь кортеж в отношении Клиент содержит как ID от Физ лица, так и ID от Юр лица.
Зачем? Обычно наоборот или просто используется сквозная нумерация.

_TopTuk_Как правильно проектируется такая ситуация, чтобы было ясно - какой клиент совершил операцию?
Смотря зачем Вам это "ясно".
...
Рейтинг: 0 / 0
04.03.2012, 21:26
    #37690874
_TopTuk_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
softwarer,

При проектировании так получается, для того чтобы связать эти таблицы (Клиент - Физ_Клиент, Клиент - Юр_Клиент).

Это необходимо для того чтобы учитывать операции клиентов (Физ. и Юр. лиц), данные по операциям необходимо хранить в БД. Ясно для того, чтобы было легко искать информацию о клиенте, который участвовал в операции, а так как в отношении Клиент два атрибута, один указывает на Юр_Клиента другой на Физ_Клиента сложно определить какого типа клиент участвовал в операции. Получается, что каждый клиент относится и к Физ лицу и к Юр лицу.
...
Рейтинг: 0 / 0
04.03.2012, 22:02
    #37690898
_TopTuk_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
softwarer,

Разобрался, огромное спасибо!
...
Рейтинг: 0 / 0
15.03.2012, 01:16
    #37705815
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
_TopTuk_,

В теории существует три основных паттерна как это спроектировать:
1. Concrete Table Inheritance
2. Single Table Inheritance
3. Class Table Inheritance

Я рекомендовал бы с ними ознакомиться.
В данном случае за отправную точку можно взять Class Table Inheritance или Single Table Inheritance.
Как правило, проектирование иерархии начинается с использования Class Table Inheritance, а остальные паттерны являются оптимизационными. Выбор Single Table Inheritance на ранних этапах часто ведет к ошибкам проектирования, но если иерархия достаточно простая и набор атрибутов отличается у разных классов на 1-2, то Single Table Inheritance является разумным выбором.
...
Рейтинг: 0 / 0
15.03.2012, 07:13
    #37705919
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
_TopTuk_,

Как правило у физико и юриков разные основные аттрибуты -> ваша сущность Client должна выродиться в просто табличку генерирующую id для двух табличек наследников и тип наследника
Ежели решите кроме этих полей пихать в Client какие-то общие аттрибуты - не оберетесь геммороя вставлять проверять иджоинить данные
У нас данное решение встречается очень часто
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]