|
|
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
После некоторых мыканий снова: "Наверняка многие сталкивались с подобным: в платежке отправителем может быть частный предприниматель, физлицо и предприятие. Все они имеют кроме различных аттрибутов самостоятельное значение в системе т.е. без выделения их в отдельные сущности - никак Такая ситуация возникает и в других предметных областях Подскажите пожалуста как ее можно решить? чтобы можно было бы отобразить и физлиц и юрлиц при заполнении и при случае по платежке получить данные соответствующие типу сущности" Мне подсказали: Создаем сущность ЛИЦО ---------- ID FK Тип Лица ТИП ЛИЦА ------------- ID Тип Лица ФИЗЛИЦО ------------ ID Лицо ... ЮРЛИЦО ------------- ID Лицо ... ЧП --------------- ID Лицо ... Все вродебы нормально, но если понадобится еще како-либо документ в котором в поле, к примеру, необходимо только физлицо и предприятие в данные сцщности необходимо добавить еще поле и так до бесконечности и при этом на этапе создания сущности необходимо будет что-то писать в эти поля? Есть другой вариант: ЛИЦО ---------- ID FK ФИЗЛИЦО FK ЧП FK Предприятие ФИЗЛИЦО -------------- ... ЧП -------------- ... ПРЕДПРИЯТИЕ -------------- ... в этом варианте лишь необходимо написать ограничение что лицо долно быть лишь одного типа В обоих случаях непонятно как писать запрос в котором бы к примеру отображать аттрибуты платежки и плательщиков если они из разных таблиц? Покритикуйте оба варианта пожалуста. И кто каким пользуется в жизни? Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 02:38 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
Если речь идет о формировании платежки, то по моему тут одна сущьность "плательщик", а статус физ.лицо юр.лицо это атрибут сущьности. И резнесения в разные таблици вообще не надо делать я бы делал две таблицы таблица плательщиков ID Организационная форма другие атрибуты ... и платежные реквизиты все реквизиты необходимые в платежке связь один ко многим так как у плательщика может быть много банков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 09:56 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
Ну вы же невнимательно прочитали мой пост - все сущности самостоятельны и не могут быть в одной таблице в силу наличия не только кардинально разных аттрибутов, но и роли в системе nnovЕсли речь идет о формировании платежки, то по моему тут одна сущьность "плательщик", а статус физ.лицо юр.лицо это атрибут сущьности. И резнесения в разные таблици вообще не надо делать я бы делал две таблицы таблица плательщиков ID Организационная форма другие атрибуты ... и платежные реквизиты все реквизиты необходимые в платежке связь один ко многим так как у плательщика может быть много банков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:07 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
spНу вы же невнимательно прочитали мой пост - все сущности самостоятельны и не могут быть в одной таблице в силу наличия не только кардинально разных аттрибутов, но и роли в системе nnovЕсли речь идет о формировании платежки, то по моему тут одна сущьность "плательщик", а статус физ.лицо юр.лицо это атрибут сущьности. И резнесения в разные таблици вообще не надо делать я бы делал две таблицы таблица плательщиков ID Организационная форма другие атрибуты ... и платежные реквизиты все реквизиты необходимые в платежке связь один ко многим так как у плательщика может быть много банков у нас установлен приоритет если не находит среди частных лиц - тогда ищет среди фирм и т д выбор банка из всех его возможных банков автоматичски - по прецеденту либо вручную если впервые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 14:16 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
MX -- ALEX у нас установлен приоритет если не находит среди частных лиц - тогда ищет среди фирм и т д выбор банка из всех его возможных банков автоматичски - по прецеденту либо вручную если впервые про банки все и так понятно вопрос про организацию бд для выбора и подстановки разных сущностей в одно поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 16:16 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
Раз нельзя объединить таблицы, то создайте view Плательщик, в котором outer join все соберет из разных таблиц, а CASE разложит по полям, нужным для платежки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 16:20 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
Если же вопрос в том, чтобы на уровне декларативной целостности гарнтировать, что документ типа А ссылается только на юрлицо или ЧП, а документ типа Б - только на ЧП или физлицо, то можно так ЛИЦО ---------- ID FK Тип Лица ... UNIQUE (ID,Тип Лица) ДОК А ---------- ID Лицо_ID Лицо_Тип ... FK (Лицо_ID,Лицо_Тип) ЛИЦО (ID,Тип Лица) CHECK Лицо_Тип ='юрлицо' or Лицо_Тип ='ЧП' ДОК Б ---------- ID Лицо_ID Лицо_Тип ... FK (Лицо_ID,Лицо_Тип) ЛИЦО (ID,Тип Лица) CHECK Лицо_Тип ='физлицо' or Лицо_Тип ='ЧП' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 16:31 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
spНу вы же невнимательно прочитали мой пост - все сущности самостоятельны и не могут быть в одной таблице в силу наличия не только кардинально разных аттрибутов, но и роли в системе Что то это заявление не вяжется с spв платежке отправителем может быть частный предприниматель, физлицо и предприятие. Значит в этом (а как подсказывает опыт еще в десятках других случаев) все эти сущности могут использоваться в одной роли. Так что я бы прислушался к совету объединить их в одной или наборе таблиц например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. А если необходимо отображать "кардинально разных аттрибуты", создать WIEW Код: plaintext 1. 2. Часто используемая и достаточно удобная схема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 18:04 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
а можно хотябы на схематично это изобразить ? ModelRРаз нельзя объединить таблицы, то создайте view Плательщик, в котором outer join все соберет из разных таблиц, а CASE разложит по полям, нужным для платежки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 20:01 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
Типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 09:31 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
spНу вы же невнимательно прочитали мой пост - все сущности самостоятельны и не могут быть в одной таблице в силу наличия не только кардинально разных аттрибутов, но и роли в системе Я думаю вы преувеличиваете, приведите пример разных ролей в системе да и атрибуты должны быть одинаковы, сущность одна - плательщик Попробуйте более абстракто посмотреть на задачу sp у нас установлен приоритет если не находит среди частных лиц - тогда ищет среди фирм и т д Эта логика работы прекрасно вписывается в предложенный мною вариант Если форма собственность выделена отдельным атрибутом плательщика нет никаких проблем выбрать сначала частников потом фирмы, если хотите то сначала частников, потом ЗАО, потом ООО, потом ОАО и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 10:46 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
Это если работать только с платежками, а если думать о других видах учета где эти сущности могут быть не только в роли плательщиков то тогда нужно получается и из других сущностей лепить в одну кучу и таких куч надо плодить по каждой роли сущностей? nnov Я думаю вы преувеличиваете, приведите пример разных ролей в системе да и атрибуты должны быть одинаковы, сущность одна - плательщик Попробуйте более абстракто посмотреть на задачу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 15:28 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
ну все же никто не помог с ответом: что лучше наследовать физлицо, юрлицо от Лицо или наоборот Лицо наследовать от сущностей Юрлицо и Физлицо (проще: создавать FK поля в сущностях Физлицо и Юрлицо на Лицо или в сущности Лицо создать поля FK Физлицо и FK Юрлицо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 15:57 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
nnovЭта логика работы прекрасно вписывается в предложенный мною вариант Если форма собственность выделена отдельным атрибутом плательщика нет никаких проблем выбрать сначала частников потом фирмы, если хотите то сначала частников, потом ЗАО, потом ООО, потом ОАО и т.д. Это когда речь идет о субъектах предпринимательской деятельности, а если платит гражданин в банке через кассу, что тоже его в общую таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 18:08 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
БОЯН поиском по форуму - на тему "физики vs юрики"... только ленивый еще не высказался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 18:46 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
там к сожалению не обсуждаются эти 2 модели - там только спор держать ли все это в одной таблице или в отдельных, а мне необходимо другое :( proposed amendmentБОЯН поиском по форуму - на тему "физики vs юрики"... только ленивый еще не высказался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 22:59 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
spЭто когда речь идет о субъектах предпринимательской деятельности, а если платит гражданин в банке через кассу, что тоже его в общую таблицу? Какая разница как он платит, от того через кассу или безналом, его статус не меняется - ОН ПЛАТЕЛЬЩИК Я уже спрашивал где еще применяются эти объекты spЭто если работать только с платежками, а если думать о других видах учета где эти сущности могут быть не только в роли плательщиков Какие другие роли? Или мы говорим о обстрактной задаче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 12:28 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
О ролях и классах. С точки зрения структуры СУБД единственно чем роль отличается от подкласса - неисключительность. По классификации лицо либо юридическое либо физическое. По роли лицо может быть и плательщиком и кем угодно еще. И роли и подклассы реализуются одинаково - через ФК на ЛИЦО. Ограничение исключительности как правило вообще никак не реализуется, а отражается а программном коде запросов, как в примере 2495947. Т.е если сказано что ЛИЦО.ТипЛица ='юрлицо' то даже если в таблице ФИЗЛИЦО что-то есть, оно игнорируется. Отдельные сущности для ролей нужны только всвязи со специфическими данными. Например, если это клиент - то у него есть аккаунт менеджер и лимит кредита, и на него может ссылаться документ типа X. Иначе если клиент - это любой, кто что-то купил, то достаточно view. Набор ФК из ЛИЦО в подклассы, роли может быть полезен, если рассматривать ЛИЦО как нормативный реестр. Наличие отметки в нем о роли/подклассе запрещает удаление из соответсвующей сущности. Так что можно использовать оба ФК одновременно, только будут заморочки - проверка должна быть отложена до конца транзакции, меняющей этот кластер таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 12:46 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
Ну вроде со структорой все роде понятно - либо: Лицо СПД ФизЛицо Персона Тип лица ---------- ------------ ----------- ------------- ------------ ID лицо ID лицо ID лицо ID лицо ID тип лица FK тип лица .... .... .... тип лица все понятно, но необходимо следить чтоб подсущность СПД,Физлицо и Персона удалялись бы вместе с сущностью Лицо либо: Лицо СПД ФизЛицо Персона ---------- ------------ ----------- ------------- ID лицо ID СПД ID Физлицо ID Персона ID СПД .... .... .... ID Физлицо ID Персона а в этом случае необходимо следить наоборот + следить чтобы лишь одно поле в сущности Лицо имело ссылку В первом случае с увеличением ролей необходимо будет модифицировать структуру трех таблиц добавляя в них поле-ссылку на сущность-роль Во втором случае - лишь одну В чем еще плюсы и минусы обоих способов реализации? Попутно еще возникает вопрос: при платежах населения их всех надо будет запихивать в сущность персона - фактически там организуется мусорник т.к. никак нельзя отличить одного Иванова Ивана Ивановича от другого, тем не менее там должны храниться и сотрудники компании и клиенты и многие другие. Как рулить этот мусорник? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 15:21 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#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. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 15:23 |
|
||
|
Re: Платежка
|
|||
|---|---|---|---|
|
#18+
sp В первом случае с увеличением ролей необходимо будет модифицировать структуру трех таблиц добавляя в них поле-ссылку на сущность-роль[quot]Кто здесь роль?[/quot sp] Во втором случае - лишь одну В чем еще плюсы и минусы обоих способов реализации? Попутно еще возникает вопрос: при платежах населения их всех надо будет запихивать в сущность персона - фактически там организуется мусорник т.к. никак нельзя отличить одного Иванова Ивана Ивановича от другого, тем не менее там должны храниться и сотрудники компании и клиенты и многие другие. Как рулить этот мусорник?Клиенты и сотрудники - типичные роли. Как правило сотрудникам не запрещается быть клиентами. С ролями вроде разобрались. Вопрос в доступе. Человек нанимается на работу. Доступна ли кадрам база клиентов? Менеджерам кадровая база? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2006, 14:53 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33628203&tid=1545335]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 518ms |

| 0 / 0 |
