|
|
|
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
|
|||
|---|---|---|---|
|
#18+
Сущность Клиент имеет две подсущности - Физический и Юридический клиент. Сущность Клиент содержит атрибуты одинаковые, как для Физ та и для Юр клиента. Подсущность Физ клиента содержит атрибуты свойственные только физ клиентам, а подсущность Юр клиент имеет только атрибуты свойственные Юр клиентам. Связи показаны на рисунке. При таком проектировании сущность Клиент имеет в качестве атрибутов свой ID и внешние ключи на первичные ключи ФИЗ и ЮР клиентов. В итоге не понятно операция с каким клиентом выполнилась - с Юридическим или Физическим, ведь кортеж в отношении Клиент содержит как ID от Физ лица, так и ID от Юр лица. Как правильно проектируется такая ситуация, чтобы было ясно - какой клиент совершил операцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2012, 19:02 |
|
||
|
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
|
|||
|---|---|---|---|
|
#18+
_TopTuk_, а еси "посущностей" :) будет 20? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2012, 19:19 |
|
||
|
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
|
|||
|---|---|---|---|
|
#18+
ViPRos, Много раз слово сущность написал ), для того чтобы понятнее было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2012, 19:25 |
|
||
|
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
|
|||
|---|---|---|---|
|
#18+
_TopTuk_ведь кортеж в отношении Клиент содержит как ID от Физ лица, так и ID от Юр лица. Зачем? Обычно наоборот или просто используется сквозная нумерация. _TopTuk_Как правильно проектируется такая ситуация, чтобы было ясно - какой клиент совершил операцию? Смотря зачем Вам это "ясно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2012, 20:33 |
|
||
|
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
|
|||
|---|---|---|---|
|
#18+
softwarer, При проектировании так получается, для того чтобы связать эти таблицы (Клиент - Физ_Клиент, Клиент - Юр_Клиент). Это необходимо для того чтобы учитывать операции клиентов (Физ. и Юр. лиц), данные по операциям необходимо хранить в БД. Ясно для того, чтобы было легко искать информацию о клиенте, который участвовал в операции, а так как в отношении Клиент два атрибута, один указывает на Юр_Клиента другой на Физ_Клиента сложно определить какого типа клиент участвовал в операции. Получается, что каждый клиент относится и к Физ лицу и к Юр лицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2012, 21:26 |
|
||
|
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
|
|||
|---|---|---|---|
|
#18+
softwarer, Разобрался, огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2012, 22:02 |
|
||
|
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
|
|||
|---|---|---|---|
|
#18+
_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 является разумным выбором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 01:16 |
|
||
|
Как правильно спроектировать БД, есть две подсущности сущности КЛИЕНТ
|
|||
|---|---|---|---|
|
#18+
_TopTuk_, Как правило у физико и юриков разные основные аттрибуты -> ваша сущность Client должна выродиться в просто табличку генерирующую id для двух табличек наследников и тип наследника Ежели решите кроме этих полей пихать в Client какие-то общие аттрибуты - не оберетесь геммороя вставлять проверять иджоинить данные У нас данное решение встречается очень часто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 07:13 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37690874&tid=1541798]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 474ms |

| 0 / 0 |
