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

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

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

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

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

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

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

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

Разобрался, огромное спасибо!
...
Рейтинг: 0 / 0
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
    #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
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
    #37705919
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_TopTuk_,

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


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