|
|
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
Здраствуйте. Нуждаюсь в Вашей помощи... Нужно создать реестр клиентов. Но среди клиентов могут быть как просто физ. лица так и целые компании. У них соответственно разные типы. Как реализовать такую схему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2010, 08:01 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
О-о-о-о-очень по-разному. Есть куча готовых и полуготовых рецептов, выбор и конкретная реализация зависят от личных предпочтений и ФТ. Ваше исходное описание настолько куцее, что сказать что-то более конкретно трудно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2010, 08:22 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
Программист-Любитель, а можно хоть намек в какую сторону копать, или же где искать ту самую кучу примеров реализации? По поводу примера то постараюсь описать более детально: Имеются клиенты. Среди них могут быть как просто частные лица(которые имеют имена, фамилии, пол и т.д.) и компании(название, тип предоставляемых услуг). Ну еще все они могут иметь общие поля адреса и контакты(их я планирую вынести в отдельные таблицы). Собственно немогу понять как згрупировать частных лиц и компании в клиентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2010, 08:37 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
inflaterseа можно хоть намек в какую сторону копать Как вариант... Типы клиентовКодНазвание КлиентыКодДатаКод типа клиента Физ.лицаКодКод клиентаДругие поля Юр.лицаКодКод клиентаДругие поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2010, 09:20 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
krvsa Как вариант... хм..довольно таки интересный вариант. Спасибо! Буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2010, 09:59 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
krvsainflaterseа можно хоть намек в какую сторону копать Как вариант...Непонятно, зачем нужно одного клиента представлять как множество физических и юридических лиц и как это потом понимать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2010, 11:04 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
alexeyvg , не представляй... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2010, 11:59 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
inflaterseЗдраствуйте. Нуждаюсь в Вашей помощи... Нужно создать реестр клиентов. Но среди клиентов могут быть как просто физ. лица так и целые компании. У них соответственно разные типы. Как реализовать такую схему? Самое простое (и самое правильное): свалить все в одну таблицу и проклассифицировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2010, 16:28 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
inflaterseЗдраствуйте. Нуждаюсь в Вашей помощи... Нужно создать реестр клиентов. Но среди клиентов могут быть как просто физ. лица так и целые компании. У них соответственно разные типы. Как реализовать такую схему? В базе данных нужно создать сущности Клиент, Физическое лицо, Организация. При этом две последние наследуются от первой. Для SQL Server 2008 это может выглядить так (код не отлаженный): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2010, 16:33 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
_модinflaterseЗдраствуйте. Нуждаюсь в Вашей помощи... Нужно создать реестр клиентов. Но среди клиентов могут быть как просто физ. лица так и целые компании. У них соответственно разные типы. Как реализовать такую схему? Самое простое (и самое правильное): свалить все в одну таблицу и проклассифицировать +1 Только типы вынести в отдельную таблицу для улучшения масштабируемости. Client id name address contacts type_id1 Вася Пупкин СССР рельса 12 Шарашкина контора Лысая гора 2232332223 2 Client_type id name1 Физлицо2 Организация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2010, 11:48 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
A1ek5andr0_модСамое простое (и самое правильное): свалить все в одну таблицу и проклассифицировать +1Речь-то идёт о случае, когда у физического лица и организации много разных атрибутов, иначе бы и вопрос не задавался. А в этом случае делать 50 полей для физлица и 50 для юрлица в одной таблице как то не очень... A1ek5andr0Только типы вынести в отдельную таблицу для улучшения масштабируемости. Client id name address contacts type_id1 Вася Пупкин СССР рельса 12 Шарашкина контора Лысая гора 2232332223 2 Client_type id name1 Физлицо2 ОрганизацияИ как это масштабируемость (линейное увеличение производительности при апгрейде железа) связано с наличием справочника типов??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2010, 12:29 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
Тогда я за этот вариант: Типы клиентовКодНазвание КлиентыКодДатаКод типа клиента Физ.лицаКодКод клиентаДругие поля Юр.лицаКодКод клиентаДругие поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 14:00 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
A1ek5andr0, не могу понять, что такое "Типы клиентов"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 14:16 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
A1ek5andr0Тогда я за этот вариант:Нормальный вариант предложил Flying Dutchman. Вы хоть представляете, какую логику ваша модель пытается отобразить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 14:52 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
alexeyvgA1ek5andr0_модСамое простое (и самое правильное): свалить все в одну таблицу и проклассифицировать +1Речь-то идёт о случае, когда у физического лица и организации много разных атрибутов, иначе бы и вопрос не задавался. А в этом случае делать 50 полей для физлица и 50 для юрлица в одной таблице как то не очень... На мой взгляд это единственный минус. Плюсы - проще структура БД, меньше трудозатраты на разработку-поддержку. Тем более в том же MS SQL для этого очень удачно подходят sparse-столбцы) Еще вариант(экзотический, не рекомендую использовать, т.к. это подходит скорее для свойств товаров): таблица "Клиенты" <общие параметры для ФЛ или ЮЛ> <тип клиента> <xml-поле, которое хранит "уникальные" свойства типа клиента> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 17:51 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
КритикalexeyvgРечь-то идёт о случае, когда у физического лица и организации много разных атрибутов, иначе бы и вопрос не задавался. А в этом случае делать 50 полей для физлица и 50 для юрлица в одной таблице как то не очень... На мой взгляд это единственный минус. Плюсы - проще структура БД, меньше трудозатраты на разработку-поддержку. Тем более в том же MS SQL для этого очень удачно подходят sparse-столбцы)Вот как раз, по моему, тут будет сложнее структура, сложнее поддерживать. Для меня разный набор полей в каждой записи - это не упрощение структуры и не упрощение поддержки. Про целостность и всё такое тут речи вообще нету. КритикЕще вариант(экзотический, не рекомендую использовать, т.к. это подходит скорее для свойств товаров): таблица "Клиенты" <общие параметры для ФЛ или ЮЛ> <тип клиента> <xml-поле, которое хранит "уникальные" свойства типа клиента>Этот вариант сейчас не такой уж экзотический, но тоже не рекомендую :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 18:25 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
alexeyvgНормальный вариант предложил Flying Dutchman. По хранению данных это будет тот же вариант, что написал я... Только у меня таблички а у него наследование и сущности... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 08:20 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
krvsaalexeyvgНормальный вариант предложил Flying Dutchman. По хранению данных это будет тот же вариант, что написал я... Только у меня таблички а у него наследование и сущности...Ничего себе одинаковый! У него для одного клиента в таблице персон может быть дополнительная запись данныех для клиента как персоны. У вас для одного клиента в таблице персон могут быть множество записей с такими данными. Чего они означать-то будут, что с ними потом делать? Выбирать для клиента первого попавшегося человека? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 12:43 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
alexeyvgУ вас для одного клиента в таблице персон могут быть множество записей с такими данными.А уникальные ключи уже отменили, да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 12:49 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
tangliralexeyvgУ вас для одного клиента в таблице персон могут быть множество записей с такими данными.А уникальные ключи уже отменили, да?Ну, в абсурдной схеме данных можно и триггерами целостность поддерживать, можно "сверку" какую-нибуть делать. Не проще сразу сделать связь 1=1, как всегда в таких случаях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:01 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
alexeyvg, а я плавно вас к этой мысли и подводил :) PS. поздравляю с юбилеем: 8888 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:39 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
tangliralexeyvg, а я плавно вас к этой мысли и подводил :)А я в первом своём посте об этом и написал. И у Flying Dutchman так и сделано. tanglirPS. поздравляю с юбилеем: 8888Спасибо, сам бы и не заметил :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:53 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
alexeyvg , ну вроде как разобрались что к чему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 20:24 |
|
||
|
нужна помощь с проектированием БД
|
|||
|---|---|---|---|
|
#18+
inflaterse, Создаешь типы - физлицо, юрлицо, ... Создаешь агрегатный тип - лицо Назначаешь ссылку на агрегатный тип лицо там, где надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 23:16 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36729004&tid=1542631]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 470ms |

| 0 / 0 |
