powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Донормализовывался - караул!!! )
25 сообщений из 111, страница 3 из 5
Донормализовывался - караул!!! )
    #35703760
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expla пишет:

> Лишие join'ы сильно влияют на производительность системы.

Видимо, тут забыли добавить частицу/приставку НЕ.

Следует читать:

"Лишие join'ы НЕсильно влияют на производительность системы"
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35703776
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
sp пишет:

> но в таком случае все ихние множественные аттрибуты получаетца тоже надо
> делать через наследование??
Что значить ? Нет, они просто будут у главного предка, т.е. и у всех его
наследников тоже, и с одинаковым механизмом работы с ними.


Проблема с наследованиемв том что основные аттрибуты сущностей находятся в наследниках (в таблице КонтрАгенты будут храниться только ссылки на описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что вызывает проблемы при обработке данных:
при редактировании/просмотре записи Контрагент мы будем видеть закладки с табличными представлениями Банковских счетов, Представителей, Контактной информацией, а к примеру чтобы посмотреть паспортные данные лица - я должен нажать пимпу на форме Контрагента, чтобы открыть форму ФизЛица и только на ней я могу посмотреть на закладке Паспорта текущие данные о паспорте граджанина или гражданки

Я уже не говорю о проблемах при создании у Контрагента Представителей - этот объект должен поступать по принципу тут читаем, тут не читаем, тут мы рыбу заворачивали - например представители ФизЛица в качестве основания могут иметь исключительно доверенность, а у предприятия либо Устав, либо Доверенность
В то время как объект ПредставителиПредприятия или ПредставителиФизлица легко контролируют такую ситуацию на уровне структур данных и на уровне клиентского кода

Вот вам и проблемы
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35703825
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr MarmeladНе соглашусь по теме SSN - по условию этот номер уникален.Не знаю как в США, но у нас в болотистой местности филиал в регионе будет иметь тот же самый ИНН, что и основная организация. Что делает этот ИНН непригодным к использованию в качестве ключа для контрагента.

Для SP : в приведенной мной ссылке - нет никакого EAV. Просто ко всем таблицам, которые вы нарисовали (физ лицо, юр лицо) добавляется еще таблица "Объект" (у вас это контрагент), которая их связывает.

Что касается ограничений целостности на уровне БД - то и этот вопрос решаемый созданием дополнительных уникальных ключей по двум полям (OBJECT_ID и TYPE_ID) и использование FK на эту пару. В добавление - если для поля в какой-то таблице использовать CHECK constraint вида TYPE_ID = 13, то тем самым решается проблема "в это поле можно вставлять только Физлиц".

Если на эту проблему не заморачиваться на уровне БД, то проверку правильности присвоения ссылок можно вынести на уровень приложения.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35703844
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spПроблема с наследованиемв том что основные аттрибуты сущностей находятся в наследниках (в таблице КонтрАгенты будут храниться только ссылки на описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что вызывает проблемы при обработке данных:
при редактировании/просмотре записи Контрагент мы будем видеть закладки с табличными представлениями Банковских счетов, Представителей, Контактной информацией, а к примеру чтобы посмотреть паспортные данные лица - я должен нажать пимпу на форме Контрагента, чтобы открыть форму ФизЛица и только на ней я могу посмотреть на закладке Паспорта текущие данные о паспорте граджанина или гражданкиНу как бы вам сказать...

1) Интерфейс можно сделать ТАКОЙ КАК НАДО, а не такой как привыкли делать некоторые.
одна таблица, одна закладка - это не догма .
2) Сделайте несколько VIEW "Все физлица", "Все Юр лица" и используйте их.
3) У вас всеравно будут разные формы для Юрлиц и Физлиц. Скорее всего разные, потому что работа с ними разная проходит. Поэтому не вижу смысла вобще создавать форму "Контрагент непонятно какой". Для контрагента определенного типа система должна открывать правильную форму. Вот и все.

spЯ уже не говорю о проблемах при создании у Контрагента Представителей - этот объект должен поступать по принципу тут читаем, тут не читаем, тут мы рыбу заворачивали - например представители ФизЛица в качестве основания могут иметь исключительно доверенность, а у предприятия либо Устав, либо Доверенность
В то время как объект ПредставителиПредприятия или ПредставителиФизлица легко контролируют такую ситуацию на уровне структур данных и на уровне клиентского кода.На уровне клиентского кода - вобще нет никаких проблем контроля. Ни в одном из вариантов. Просто контроль может быть неверный :)

Что касается контроля на уровне БД. Если Вы хотите сделать FK от договоров к контрагенту, но чтобы он обязательно был Физлицом - сделайте это FK не на таблицу "контрагент", а на таблицу "Физлица" :)
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35703892
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp пишет:

> Проблема с наследованиемв том что основные аттрибуты сущностей находятся
> в наследниках (в таблице КонтрАгенты будут храниться только ссылки на
> описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что
> вызывает проблемы при обработке данных:

Ну, нет там никаких особых проблем.

> при редактировании/просмотре записи Контрагент мы будем видеть закладки
> с табличными представлениями Банковских счетов, Представителей,
> Контактной информацией, а к примеру чтобы посмотреть паспортные данные
> лица - я должен нажать пимпу на форме Контрагента,


чтобы открыть форму
> ФизЛица и только на ней я могу посмотреть на закладке Паспорта текущие
> данные о паспорте граджанина или гражданки

А что , сразу форму физлица нельзя открыть ?

> Вот вам и проблемы

Да надуманные какие-то проблемы.
Надо учить формы работать и с наследниками тоже и быть адаптивными
к тому, какой класс объекта они редактируют, да. Ну и что ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704006
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bely1) Интерфейс можно сделать ТАКОЙ КАК НАДО, а не такой как привыкли делать некоторые.
одна таблица, одна закладка - это не догма .
2) Сделайте несколько VIEW "Все физлица", "Все Юр лица" и используйте их.

это не кошерно, учили не так!

p.s. на самом деле +1. Не пойму в чем проблема вообще.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704021
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmBely1) Интерфейс можно сделать ТАКОЙ КАК НАДО, а не такой как привыкли делать некоторые.
одна таблица, одна закладка - это не догма .
2) Сделайте несколько VIEW "Все физлица", "Все Юр лица" и используйте их.

это не кошерно, учили не так!

p.s. на самом деле +1. Не пойму в чем проблема вообще.

Поясню: у меня каждый клиентский объект работает сосвоей сущностью в базе: т.е он отрисовывает грид и открывает форму для сущности, аесли я работаю с Контрагентом и в его гриде пытаюсь открыть запись другого объекта - то это как-то не кашерно!
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704082
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp
Проблема с наследованиемв том что основные аттрибуты сущностей находятся в наследниках (в таблице КонтрАгенты будут храниться только ссылки на описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что вызывает проблемы при обработке данных
Проблема в том, что вы неправильно понимаете сами принципы наследования (основы так сказать). В это им вся проблема. Общие атрибуты хранятся как раз в базовой (родительской) таблице. А второстепенные, уточняющие,индивидуальные и т.п. хранятся в наследниках.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704088
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spiscrafmBely1) Интерфейс можно сделать ТАКОЙ КАК НАДО, а не такой как привыкли делать некоторые.
одна таблица, одна закладка - это не догма .
2) Сделайте несколько VIEW "Все физлица", "Все Юр лица" и используйте их.

это не кошерно, учили не так!

p.s. на самом деле +1. Не пойму в чем проблема вообще.

Поясню: у меня каждый клиентский объект работает сосвоей сущностью в базе: т.е он отрисовывает грид и открывает форму для сущности, аесли я работаю с Контрагентом и в его гриде пытаюсь открыть запись другого объекта - то это как-то не кашерно!
никто не мешает сделать так, чтобы при любой схеме физической организации БД
1. Отображать объекты разных типов в одном гриде
2. Отображать объекты разных типов в разных гридах
3. открывать форму редактирования/просмотра свойств объекта из одного гида или из нескольких
4...
Вы скажите в чем проблема. В организации БД или в интерфейсе? Потому что ни в первом ни во втором случае проблем нет, все давно решено и повсеместно используется.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704094
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmsp
Проблема с наследованиемв том что основные аттрибуты сущностей находятся в наследниках (в таблице КонтрАгенты будут храниться только ссылки на описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что вызывает проблемы при обработке данных
Проблема в том, что вы неправильно понимаете сами принципы наследования (основы так сказать). В это им вся проблема. Общие атрибуты хранятся как раз в базовой (родительской) таблице. А второстепенные, уточняющие,индивидуальные и т.п. хранятся в наследниках.

а когда нет общих основных??? имя, фамилия и отчество или паспорта - являются общими??? вот и я их не стал делать общими
просто вы невнимательно читаете мои посты!

я уже понял надо обозначить структуру данных и ее обсуждать - проблема у меня пока в том что нет рисовалки, а msql рисует громадные картинки :(
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704101
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spя уже понял надо обозначить структуру данных и ее обсуждать - проблема у меня пока в том что нет рисовалки, а msql рисует громадные картинки :(
ну если проблема только в этом, то конечно.

p.s. есть такое понятие как наименование, в принципе. Для одних это название юрлица, для других это ФИО, для третьих кличка. Вы лучше не ставьте в упрек невнимательное чтение ваших постов, а внимательно читаейте то, что вам уже здесь понасоветовали. Полезней будет для решения задачи.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704113
Фотография stells2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spВ общем решил как по букве Науки понормализовывать все шо ни попадет под руку - и вот вышло:

-Физ-лицо
-Представители физлица
-банковские счета Физлица

-ЧПФЛ
-Представители ЧПФЛ
-банковские счета ЧПФЛ

-Юрлицо
-Представители Юрлица
-банковские счета Юрлица


правда создал еще

-Контрагент (тута их денормализовал в кучу :) )

типерь надо составить договор:
в котором должны участвовать Контраген, его Представитель и Банковские реквизиты

утут и уперся - шо типерь все взад денормализовывать по типу Контрагент? -> ПредставителиКонтрагента, БанковскиеСчетаКонтрАгента ?????

Как быть или это я зря начитался всяких букварей???????
Звиняюсь, я видать что-то пропустил..
О какой нормализации идет речь?
Если нормализация, то вспомним определение, если негде вспомнить.. то что-то типа – «все атрибуты должны зависеть от одного ключа и ни как иначе, все что может или зависит, или может быть внести неоднозначность – идет лесом, т.е. в другую таблицу».. что-то типа этого :)
А по тому: лица отдельно, можно включить к ним признак (физ –юр – бомж и т.д.), но это только дополнение.. ибо «лицо» оно и есть лицо и не что больше, а если это что-то иное.. тогда и звать его иначе, «фирма» например..
«Представители физлица» - это что за звери? Тоже лица? Тогда в первой таблице, иначе думаем с определением но в единственном числе, т.к. набор есть множественное число а запись есть в единственном..
Банковские счета.. Опять туда же.. не множественное число а единственное. И что что их много, но каждый счет это отдельная тема с кучей атрибутов возможных и т.д. возможно это просто 20-ти значный код не суть.. В любом случае – это отдельная таблица.
Ну и по остальному также..
Или, это уже таблицы связей? Тогда, эти триплеты не канают.. ибо нет возможность однозначно сопоставить зависимости.
Возможно я что-то пропустил или не понял. Но есть изумительное средство – view которое непонятно как, но решает проблемы вызывающие желание дерномализовать..
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704121
Фотография stells2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stells2все что может или зависит.
все что может или зависит от чего то еще
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704122
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И так начнем - я обозначу структуру как я ее вижу, а вы поправьте там где я упаду пьяным )

ФизЛицо
-------------
ID Физлица
...аттрибуты лица...


ЮрЛицо
------------------
ID ЮрЛица
...аттрибуты юрлица


ЧП
-------------------
ID ЧП
ID Физлица
...аттрибуты ЧП..


ПаспортаФизлица
---------------------
ID Паспорта
ID Физлица
... аттрибуты паспорта...

ПенсионныеУдостоверения
-------------------------
ID Удостоверения
ID Физлица
...аттрибуты физлица...

БалансовыеПодразделенияЮрЛица
--------------------------------------
ID БалансовогоПодразделения
ID ЮрЛица
...аттрибуты...


КОНТРАГЕНТ
------------------------
ID Контрагента
ID Физлица
ID ЮрЛица
ID ЧП

СубъектХозДеятельности - СХД
---------------------------
ID Субъекта
ID ЮрЛица
ID ЧП


ФактическиеАдресаКонтрагента
----------------------------------
ID ФактичАдреса
ID Контрагента
ID Адреса - ссылка на экземпляр сущности Адрес

ТелефоныКонтрагента
----------------------------------
ID ТелефонаКонтрагента
ID Контрагента
ID Телефона - ссылка на экземпляр сущности телефон

БезбалансовыеПодразделенияКонтрАгента
-------------------------------------------
ID Подразделения
ID Контрагента
...аттрибуты...


Банки
----------------------
ID Банка
...аттрибуты...


БанковскиеРеквизитыКонтрагента
--------------------------------------
ID Реквизита
ID Контрагента
ID Банка
...аттрибуты...


ПредставителиКонтрагента
--------------------------------
ID Представителя
ID Контрагента



ДокументыПредставителя
-----------------------------
ID Документа
ID Представителя
ID Устава
ID Доверенности


Устав
----------------
ID Устава
Дата выдачи = 01.01.1900
Срок действия = 01.01.3000


Довенренности
-------------------------
ID Доверенности
ID Контрагента
ID Физлица
Номер
Серия
Дата выдачи
Срок действия


И тут появляются вопросы:

-для СХД также необходима информация: ФактическиеАдреса, Телефоны, БезбалансовыеПодразделения, БанковскиеРеквизиты, Представители - создавать дублирующие структуры????

-как в ПредставителиКонтрагента для Физлица и ЧП пресечь на корню даже предложение о документе Устав??????
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704132
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу допечатать недопечатки

ПредставителиКонтрагента
--------------------------------
ID Представителя
ID Контрагента
ID Физлица
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704726
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spКОНТРАГЕНТ
------------------------
ID Контрагента
ID Физлица
ID ЮрЛица
ID ЧП

Нчнем с этого.

ID Физлица,ID ЮрЛица,ID ЧП - в топку. Остается только ID Контрагента
В соответствующих таблицах: ФизЛицо, ЮрЛицо, ЧП - первичный ключ: ID Контрагента, а не свой собственный.

PS: Всетаки, внимательно почитайте и разберитесь со скриптами создания таблиц в этой теме .
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35704733
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В довесок еще в контрагента надо добавить поле "ТИП контрагента", чтобы можно было легко определить кто у нас кто.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35705135
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyВ довесок еще в контрагента надо добавить поле "ТИП контрагента", чтобы можно было легко определить кто у нас кто.

Вот тут не согласен - зачем мне тип контрагента если заполненное конкретное поле само за себя говорит что за тип контрагента

В такой схеме получается что несколько разных наследников могут ссылаться на одного контрагента - что для данной системы есть низзя!!!!!
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35705148
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyspКОНТРАГЕНТ
------------------------
ID Контрагента
ID Физлица
ID ЮрЛица
ID ЧП

Нчнем с этого.

ID Физлица,ID ЮрЛица,ID ЧП - в топку. Остается только ID Контрагента
В соответствующих таблицах: ФизЛицо, ЮрЛицо, ЧП - первичный ключ: ID Контрагента, а не свой собственный.

PS: Всетаки, внимательно почитайте и разберитесь со скриптами создания таблиц в этой теме .

Интересная идея - никогда так не думал о наследовании!!!!
Надо покумекать - слишком уж нестандартно но многообещающе!
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35705602
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spИнтересная идея - никогда так не думал о наследовании!!!!
Надо покумекать - слишком уж нестандартно но многообещающе! НАКОНЕЦ-то НАЧАЛИ ЧИТАТЬ ТО ЧТО ВАМ ПИШУТ!
А прошло-то всего-то чуть более суток
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35706153
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyspИнтересная идея - никогда так не думал о наследовании!!!!
Надо покумекать - слишком уж нестандартно но многообещающе! НАКОНЕЦ-то НАЧАЛИ ЧИТАТЬ ТО ЧТО ВАМ ПИШУТ!
А прошло-то всего-то чуть более суток

Ничего подобного!!!!
это было написано в первый раз в таком понятном виде !!!!! :)
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35706160
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelyspКОНТРАГЕНТ
------------------------
ID Контрагента
ID Физлица
ID ЮрЛица
ID ЧП

Нчнем с этого.

ID Физлица,ID ЮрЛица,ID ЧП - в топку.

Зачем так стразу в топку. Вариант sp, один из способов реализации наследования. К стати, пока в оракле наследование не поддерживалось, такой подход был описан в документации.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35706172
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaЗачем так стразу в топку. Вариант sp, один из способов реализации наследования. К стати, пока в оракле наследование не поддерживалось, такой подход был описан в документации.1) Как мы будем интерпретировать запись, если у нас заполнено сразу три поля?
2) Если у нас появится новый тип - будем добавлять новое поле?
А если этих типов 50 ? Как там насчет нормализации?
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35706189
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИнтересная идея - никогда так не думал о наследовании!!!!
Надо покумекать - слишком уж нестандартно но многообещающе!
Все это давно известно.Полистай 2ю главу в букваре "Data Model Resource Book".
В общем виде все твои сущности там рассмотрены
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35706337
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelyexplaЗачем так стразу в топку. Вариант sp, один из способов реализации наследования. К стати, пока в оракле наследование не поддерживалось, такой подход был описан в документации.1) Как мы будем интерпретировать запись, если у нас заполнено сразу три поля?
2) Если у нас появится новый тип - будем добавлять новое поле?
А если этих типов 50 ? Как там насчет нормализации?

1) так не заполняйте сразу три поля. Ограничения целостности то на что? Наконец, лишние значения можно просто игнорировать используя приоритеты. К стати, в вашем варианте нет гарантии, что Контрагент существует, а соответсвующие ФЛ, ЧП и т.п. отсутствуют - нет и никакими декларативными ограничениями целостности вы эту проблему не решите. А в отвергнутом варианте всё это легко решается внешними ключами и проверками на записи.

2) Ну что поделаешь... Всё равно на новый тип систему придётся затачивать хоть так, хоть эдак.

Количество типов не имеет значения пока СУБД позволяет добавлять поля в таблицу и никакого нарушения НФ тут нет. Или вы считаете, что нормализация, это когда количество колонок в таблице уменьшается?
...
Рейтинг: 0 / 0
25 сообщений из 111, страница 3 из 5
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Донормализовывался - караул!!! )
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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