|
|
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
Приветствую коллеги! Делаю свой Стартап и нужна Ваша помощь в организации структуры БД. ЗАДАЧА Организовать структуру БД хранения и выборки Заказов Компании СУЩНОСТИ 1) КОМПАНИЯ - Company 2) ЗАКАЗЫ - CompanyOrder 3) ПОКУПАТЕЛЬ - Company or Employee а) Юр. лицо; б) Физ. лицо; ЛОГИКА У Компании есть Заказчик (в лице Юр.Лица либо Физ.Лица) который оформляет Заказ; ПРОБЛЕМЫ Т.к. Юр.Лицо и Физ.Лицо по определению два разных типа Заказчика, встает разумный вопрос: - Как организовать структуру БД так, чтобы было удобно пользоваться не только конечному пользователю, но и разработчику? ПРЕДПОЛАГАЕМАЯ СТРУКТУРА БД Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. Данные планируется вытаскивать через EntityFramework. Пример: Вытащим Договор для Компании где ID=1 и получим: Код: plaintext 1. 2. 3. Что Вы на это скажете? Да и еще маленький вопрос: - В БД планируется использовать Адреса клиентов (для поиска/фильтрации/сортировки), нужно ли заводить доп. справочники которые будут содержать названия улиц, номера домов и квартир ? Большое Спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2010, 18:56 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
уТКаПриветствую коллеги! Однозначно нужно рассматривать отображение наследования объектов в БД, т.к. и компания и заказчики и ПОКУПАТЕЛЬ и Юр. лицо и Физ. лицо - являюцца контрагентами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 10:52 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
уТКа wrote: > Т.к. Юр.Лицо и Физ.Лицо по определению два разных типа Заказчика, встает > разумный вопрос: > - Как организовать структуру БД так, чтобы было удобно пользоваться не > только конечному пользователю, но и разработчику? Делать общего предка у юрлица и физлица, и на него оформлять заказы. > Данные планируется вытаскивать через EntityFramework. Твою идею я не понял. > *Да и еще маленький вопрос:* > - В БД планируется использовать Адреса клиентов (для > поиска/фильтрации/сортировки), нужно ли заводить доп. справочники > которые будут содержать названия улиц, номера домов и квартир ? Зависит от твоей задачи. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 12:44 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
MasterZiv обрисуйте на "пальцах" таблицах, как вы это представляете. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 13:12 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
Employee - это работник компании, но никак не физлицо. Ответьте на такие вопросы: 1) потребуется ли хранить историю изменений договора (доп. соглашений)? 2) потребуется ли сохранять старый адрес контрагента (не важно - физ или юр лица), в случае его смены? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 13:46 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
3) еще возможна ситуация, когда вчерашнее физлицо (Вася) стал юрлицом (организовал ООО Василёк), сохранив при этом историю своих заказов в Компании ( => скидки и пр. ). Вы её сейчас откидываете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 13:54 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
с Employee - я действительно погорячился. Заменим это неудачное слово на Customer. 2 ineedyou нет, вести историю изменения договоров (доп. соглашений) и смены адресов контрагентов не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 13:58 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
скидок как таковых пока не планировалось, но вполне вероятно что в дальнейшем потребуется реализовать. пока не представляю как вписать этот кусок "скидки" в существующую модель БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:04 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
Самый простой способ - в лоб, объединить все возможные аттрибуты и физ и юрлиц в одной сущности, добавив доп. аттрибут - тип клиента. На тип клиента можно повесить CHECK CONSTRAINT, который будет проверть NOT NULLность соотв. аттрибутов, если это будет продиктовано бизнес логикой (например у всех юриков поле ИНН должно быть непусто) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:18 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
такой вариант проскакивал в голове, но его пришлось отсечь т.к. в ПО необходимо на поля навесить Валидаторы и в случае смешивания полей Юр. и Физ. лица ничего не выйдет. в проекте будет использован Domain-driven design (DDD) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:28 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
Для ПО можно предоставить отдельно 2 представления "ФизЛица" и "ЮрЛица" со своими аттрибутами. Это что за "Валидаторы" такие, которые не могут учитывать сложные условия? Целостность данных и соответствие их БП вы хотите поддерживать исключительно на уровне приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:41 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
нет, валидаторы будут навешаны непосредственно в модели и такие сложные манипуляции там не возможны. ПО будет делаться на Silverlight + WCF RIA Services ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:45 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
> ПО будет делаться на Silverlight + WCF RIA Services > в проекте будет использован Domain-driven design (DDD) > Данные планируется вытаскивать через EntityFramework. Опишите, пожалуйста, какие это накладывает ограничения к модели данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:47 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
пардон муа авторДля ПО можно предоставить отдельно 2 представления "ФизЛица" и "ЮрЛица" со своими аттрибутами. если это изначально будут две разные сущности, как описывал я в первом посте, то проблем не возникает, но если разделения на уровне "в уме" то не пройдет. объясню почему нельзя простой пример в смешанных полях: имеем физ лицо, у него обязательны ФИО, адрес, телефон, нужно навесить валидатор на эти поля, вводим, работает. НО! Нам ведь в эту же таблицу нужно вводить и Юр.Лиц, делаем валидаторы на него и получается что валидаторы от Юр.Лица и Физ.Лица смешались, т.е. нужно вводить и ФИО и Адрес и Телефон и ПБОЮЛ и ИИН и БИК и БАНК и Счет для ВСЕХ! вот поэтому сущности лучше сразу разнести, дыба геморроя не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:58 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
ПБОЮЛ и ИИН и БИК и БАНК и Счет для ВСЕХ!А что мешает сделать их необязательными для определенного вида лица ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:02 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
2 LSV DDD зачем мешать котлеты и конфеты? (с) Мой препод ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:08 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
LSVПБОЮЛ и ИИН и БИК и БАНК и Счет для ВСЕХ!А что мешает сделать их необязательными для определенного вида лица ? Я собственно про это и говорил выше: авторНа тип клиента можно повесить CHECK CONSTRAINT, который будет проверть NOT NULLность соотв. аттрибутов, если это будет продиктовано бизнес логикой (например у всех юриков поле ИНН должно быть непусто) Но ТС видимо имеет в виду какие-то свои валидаторы, которые не дают ему покоя. Автор: если тебе в интерфейсе нужно проверять (валидировать) вводимые пользователем данные В ЗАВИСИМОСТИ от типа, так сделай этот интерфейс (форму/окно/что там у тебя) умной. Если у тебя, в связи с выбором платформы, с этим проблемы, сделай ДВА интерфейса - один для юрлиц, другой для физ. Валидация же данных на уровне БД проблем не доставит в описанном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:09 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
авторзачем мешать котлеты и конфеты? (с) Мой препод Ты сейчас наплодишь ненужные сущности в своём "стартапе" на ровном месте, а надо бы подумать о скидках, изменениях к договорам и пр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:10 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
валидаторы вполне стандартные, которые представляет возможным использовать сама WCF RIA Services. нужно подумать и посоветоваться, сходу не хочется применять такую "слепленную" структуру. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:22 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
Второе решение, с выделением вырожденной сущности Клиент и его имплементаций КлиентЮрлицо и КлиентФизлицо вам уже приводили: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Если вы и его откините, потому что тут сущность Client в чистом виде вырождена и вам не удобна, меняйте либо парадигму DDD либо своё её понимание :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:30 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
2 ineedyou реализация вполне нормальная. видимо это и имел ввиду автор MasterZiv. Спасибо большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:46 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
уТКа2 LSV DDD зачем мешать котлеты и конфеты? (с) Мой преподСудя по всему Вам важнее какие-то порожняковые аббревиатуры (Silverlight + WCF RIA Services, DDD, EF и пр.), а не результат. Делайте разные сущности. Да хоть десять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 16:35 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
уТКа Что Вы на это скажете? По моему, разумно будет использовать термины, применяемые в страховании: Страхователь Выгодоприобретатель Застрахованный Страховщик Этих субъектов нужно упомянуть в договоре и по закону. Каждый субъект может быть как юрлицом, так и физлицом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 16:35 |
|
||
|
Структура БД. Договор: Юр.Лицо или Физ.Лицо
|
|||
|---|---|---|---|
|
#18+
LSVСудя по всему Вам важнее какие-то порожняковые аббревиатуры пускай и так, но я не хочу плодить ужас на который спустя время можно будет взглянуть лишь через слезы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 18:40 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=78&tid=1542867]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
84ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 448ms |

| 0 / 0 |
