|
|
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
expla пишет: > Лишие join'ы сильно влияют на производительность системы. Видимо, тут забыли добавить частицу/приставку НЕ. Следует читать: "Лишие join'ы НЕсильно влияют на производительность системы" Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 19:11:32 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
MasterZiv sp пишет: > но в таком случае все ихние множественные аттрибуты получаетца тоже надо > делать через наследование?? Что значить ? Нет, они просто будут у главного предка, т.е. и у всех его наследников тоже, и с одинаковым механизмом работы с ними. Проблема с наследованиемв том что основные аттрибуты сущностей находятся в наследниках (в таблице КонтрАгенты будут храниться только ссылки на описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что вызывает проблемы при обработке данных: при редактировании/просмотре записи Контрагент мы будем видеть закладки с табличными представлениями Банковских счетов, Представителей, Контактной информацией, а к примеру чтобы посмотреть паспортные данные лица - я должен нажать пимпу на форме Контрагента, чтобы открыть форму ФизЛица и только на ней я могу посмотреть на закладке Паспорта текущие данные о паспорте граджанина или гражданки Я уже не говорю о проблемах при создании у Контрагента Представителей - этот объект должен поступать по принципу тут читаем, тут не читаем, тут мы рыбу заворачивали - например представители ФизЛица в качестве основания могут иметь исключительно доверенность, а у предприятия либо Устав, либо Доверенность В то время как объект ПредставителиПредприятия или ПредставителиФизлица легко контролируют такую ситуацию на уровне структур данных и на уровне клиентского кода Вот вам и проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 19:21:22 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
Mr MarmeladНе соглашусь по теме SSN - по условию этот номер уникален.Не знаю как в США, но у нас в болотистой местности филиал в регионе будет иметь тот же самый ИНН, что и основная организация. Что делает этот ИНН непригодным к использованию в качестве ключа для контрагента. Для SP : в приведенной мной ссылке - нет никакого EAV. Просто ко всем таблицам, которые вы нарисовали (физ лицо, юр лицо) добавляется еще таблица "Объект" (у вас это контрагент), которая их связывает. Что касается ограничений целостности на уровне БД - то и этот вопрос решаемый созданием дополнительных уникальных ключей по двум полям (OBJECT_ID и TYPE_ID) и использование FK на эту пару. В добавление - если для поля в какой-то таблице использовать CHECK constraint вида TYPE_ID = 13, то тем самым решается проблема "в это поле можно вставлять только Физлиц". Если на эту проблему не заморачиваться на уровне БД, то проверку правильности присвоения ссылок можно вынести на уровень приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 19:56:22 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
spПроблема с наследованиемв том что основные аттрибуты сущностей находятся в наследниках (в таблице КонтрАгенты будут храниться только ссылки на описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что вызывает проблемы при обработке данных: при редактировании/просмотре записи Контрагент мы будем видеть закладки с табличными представлениями Банковских счетов, Представителей, Контактной информацией, а к примеру чтобы посмотреть паспортные данные лица - я должен нажать пимпу на форме Контрагента, чтобы открыть форму ФизЛица и только на ней я могу посмотреть на закладке Паспорта текущие данные о паспорте граджанина или гражданкиНу как бы вам сказать... 1) Интерфейс можно сделать ТАКОЙ КАК НАДО, а не такой как привыкли делать некоторые. одна таблица, одна закладка - это не догма . 2) Сделайте несколько VIEW "Все физлица", "Все Юр лица" и используйте их. 3) У вас всеравно будут разные формы для Юрлиц и Физлиц. Скорее всего разные, потому что работа с ними разная проходит. Поэтому не вижу смысла вобще создавать форму "Контрагент непонятно какой". Для контрагента определенного типа система должна открывать правильную форму. Вот и все. spЯ уже не говорю о проблемах при создании у Контрагента Представителей - этот объект должен поступать по принципу тут читаем, тут не читаем, тут мы рыбу заворачивали - например представители ФизЛица в качестве основания могут иметь исключительно доверенность, а у предприятия либо Устав, либо Доверенность В то время как объект ПредставителиПредприятия или ПредставителиФизлица легко контролируют такую ситуацию на уровне структур данных и на уровне клиентского кода.На уровне клиентского кода - вобще нет никаких проблем контроля. Ни в одном из вариантов. Просто контроль может быть неверный :) Что касается контроля на уровне БД. Если Вы хотите сделать FK от договоров к контрагенту, но чтобы он обязательно был Физлицом - сделайте это FK не на таблицу "контрагент", а на таблицу "Физлица" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 20:08:37 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
sp пишет: > Проблема с наследованиемв том что основные аттрибуты сущностей находятся > в наследниках (в таблице КонтрАгенты будут храниться только ссылки на > описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что > вызывает проблемы при обработке данных: Ну, нет там никаких особых проблем. > при редактировании/просмотре записи Контрагент мы будем видеть закладки > с табличными представлениями Банковских счетов, Представителей, > Контактной информацией, а к примеру чтобы посмотреть паспортные данные > лица - я должен нажать пимпу на форме Контрагента, чтобы открыть форму > ФизЛица и только на ней я могу посмотреть на закладке Паспорта текущие > данные о паспорте граджанина или гражданки А что , сразу форму физлица нельзя открыть ? > Вот вам и проблемы Да надуманные какие-то проблемы. Надо учить формы работать и с наследниками тоже и быть адаптивными к тому, какой класс объекта они редактируют, да. Ну и что ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 20:35:56 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
Bely1) Интерфейс можно сделать ТАКОЙ КАК НАДО, а не такой как привыкли делать некоторые. одна таблица, одна закладка - это не догма . 2) Сделайте несколько VIEW "Все физлица", "Все Юр лица" и используйте их. это не кошерно, учили не так! p.s. на самом деле +1. Не пойму в чем проблема вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 21:39:42 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
iscrafmBely1) Интерфейс можно сделать ТАКОЙ КАК НАДО, а не такой как привыкли делать некоторые. одна таблица, одна закладка - это не догма . 2) Сделайте несколько VIEW "Все физлица", "Все Юр лица" и используйте их. это не кошерно, учили не так! p.s. на самом деле +1. Не пойму в чем проблема вообще. Поясню: у меня каждый клиентский объект работает сосвоей сущностью в базе: т.е он отрисовывает грид и открывает форму для сущности, аесли я работаю с Контрагентом и в его гриде пытаюсь открыть запись другого объекта - то это как-то не кашерно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 21:50:40 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
sp Проблема с наследованиемв том что основные аттрибуты сущностей находятся в наследниках (в таблице КонтрАгенты будут храниться только ссылки на описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что вызывает проблемы при обработке данных Проблема в том, что вы неправильно понимаете сами принципы наследования (основы так сказать). В это им вся проблема. Общие атрибуты хранятся как раз в базовой (родительской) таблице. А второстепенные, уточняющие,индивидуальные и т.п. хранятся в наследниках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 22:33:15 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
spiscrafmBely1) Интерфейс можно сделать ТАКОЙ КАК НАДО, а не такой как привыкли делать некоторые. одна таблица, одна закладка - это не догма . 2) Сделайте несколько VIEW "Все физлица", "Все Юр лица" и используйте их. это не кошерно, учили не так! p.s. на самом деле +1. Не пойму в чем проблема вообще. Поясню: у меня каждый клиентский объект работает сосвоей сущностью в базе: т.е он отрисовывает грид и открывает форму для сущности, аесли я работаю с Контрагентом и в его гриде пытаюсь открыть запись другого объекта - то это как-то не кашерно! никто не мешает сделать так, чтобы при любой схеме физической организации БД 1. Отображать объекты разных типов в одном гриде 2. Отображать объекты разных типов в разных гридах 3. открывать форму редактирования/просмотра свойств объекта из одного гида или из нескольких 4... Вы скажите в чем проблема. В организации БД или в интерфейсе? Потому что ни в первом ни во втором случае проблем нет, все давно решено и повсеместно используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 22:39:06 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
iscrafmsp Проблема с наследованиемв том что основные аттрибуты сущностей находятся в наследниках (в таблице КонтрАгенты будут храниться только ссылки на описание ФизЛица, ЮрЛица и ЧП) а общие аттрибуты будут в предках что вызывает проблемы при обработке данных Проблема в том, что вы неправильно понимаете сами принципы наследования (основы так сказать). В это им вся проблема. Общие атрибуты хранятся как раз в базовой (родительской) таблице. А второстепенные, уточняющие,индивидуальные и т.п. хранятся в наследниках. а когда нет общих основных??? имя, фамилия и отчество или паспорта - являются общими??? вот и я их не стал делать общими просто вы невнимательно читаете мои посты! я уже понял надо обозначить структуру данных и ее обсуждать - проблема у меня пока в том что нет рисовалки, а msql рисует громадные картинки :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 22:44:43 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
spя уже понял надо обозначить структуру данных и ее обсуждать - проблема у меня пока в том что нет рисовалки, а msql рисует громадные картинки :( ну если проблема только в этом, то конечно. p.s. есть такое понятие как наименование, в принципе. Для одних это название юрлица, для других это ФИО, для третьих кличка. Вы лучше не ставьте в упрек невнимательное чтение ваших постов, а внимательно читаейте то, что вам уже здесь понасоветовали. Полезней будет для решения задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 22:49:11 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
spВ общем решил как по букве Науки понормализовывать все шо ни попадет под руку - и вот вышло: -Физ-лицо -Представители физлица -банковские счета Физлица -ЧПФЛ -Представители ЧПФЛ -банковские счета ЧПФЛ -Юрлицо -Представители Юрлица -банковские счета Юрлица правда создал еще -Контрагент (тута их денормализовал в кучу :) ) типерь надо составить договор: в котором должны участвовать Контраген, его Представитель и Банковские реквизиты утут и уперся - шо типерь все взад денормализовывать по типу Контрагент? -> ПредставителиКонтрагента, БанковскиеСчетаКонтрАгента ????? Как быть или это я зря начитался всяких букварей??????? Звиняюсь, я видать что-то пропустил.. О какой нормализации идет речь? Если нормализация, то вспомним определение, если негде вспомнить.. то что-то типа – «все атрибуты должны зависеть от одного ключа и ни как иначе, все что может или зависит, или может быть внести неоднозначность – идет лесом, т.е. в другую таблицу».. что-то типа этого :) А по тому: лица отдельно, можно включить к ним признак (физ –юр – бомж и т.д.), но это только дополнение.. ибо «лицо» оно и есть лицо и не что больше, а если это что-то иное.. тогда и звать его иначе, «фирма» например.. «Представители физлица» - это что за звери? Тоже лица? Тогда в первой таблице, иначе думаем с определением но в единственном числе, т.к. набор есть множественное число а запись есть в единственном.. Банковские счета.. Опять туда же.. не множественное число а единственное. И что что их много, но каждый счет это отдельная тема с кучей атрибутов возможных и т.д. возможно это просто 20-ти значный код не суть.. В любом случае – это отдельная таблица. Ну и по остальному также.. Или, это уже таблицы связей? Тогда, эти триплеты не канают.. ибо нет возможность однозначно сопоставить зависимости. Возможно я что-то пропустил или не понял. Но есть изумительное средство – view которое непонятно как, но решает проблемы вызывающие желание дерномализовать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 23:02:18 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
stells2все что может или зависит. все что может или зависит от чего то еще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 23:05:53 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
И так начнем - я обозначу структуру как я ее вижу, а вы поправьте там где я упаду пьяным ) ФизЛицо ------------- 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 Физлица Номер Серия Дата выдачи Срок действия И тут появляются вопросы: -для СХД также необходима информация: ФактическиеАдреса, Телефоны, БезбалансовыеПодразделения, БанковскиеРеквизиты, Представители - создавать дублирующие структуры???? -как в ПредставителиКонтрагента для Физлица и ЧП пресечь на корню даже предложение о документе Устав?????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 23:06:04 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
Хочу допечатать недопечатки ПредставителиКонтрагента -------------------------------- ID Представителя ID Контрагента ID Физлица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 23:18:42 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
spКОНТРАГЕНТ ------------------------ ID Контрагента ID Физлица ID ЮрЛица ID ЧП Нчнем с этого. ID Физлица,ID ЮрЛица,ID ЧП - в топку. Остается только ID Контрагента В соответствующих таблицах: ФизЛицо, ЮрЛицо, ЧП - первичный ключ: ID Контрагента, а не свой собственный. PS: Всетаки, внимательно почитайте и разберитесь со скриптами создания таблиц в этой теме . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 11:15:33 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
В довесок еще в контрагента надо добавить поле "ТИП контрагента", чтобы можно было легко определить кто у нас кто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 11:17:43 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
BelyВ довесок еще в контрагента надо добавить поле "ТИП контрагента", чтобы можно было легко определить кто у нас кто. Вот тут не согласен - зачем мне тип контрагента если заполненное конкретное поле само за себя говорит что за тип контрагента В такой схеме получается что несколько разных наследников могут ссылаться на одного контрагента - что для данной системы есть низзя!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 12:57:39 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
BelyspКОНТРАГЕНТ ------------------------ ID Контрагента ID Физлица ID ЮрЛица ID ЧП Нчнем с этого. ID Физлица,ID ЮрЛица,ID ЧП - в топку. Остается только ID Контрагента В соответствующих таблицах: ФизЛицо, ЮрЛицо, ЧП - первичный ключ: ID Контрагента, а не свой собственный. PS: Всетаки, внимательно почитайте и разберитесь со скриптами создания таблиц в этой теме . Интересная идея - никогда так не думал о наследовании!!!! Надо покумекать - слишком уж нестандартно но многообещающе! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 12:59:34 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
spИнтересная идея - никогда так не думал о наследовании!!!! Надо покумекать - слишком уж нестандартно но многообещающе! НАКОНЕЦ-то НАЧАЛИ ЧИТАТЬ ТО ЧТО ВАМ ПИШУТ! А прошло-то всего-то чуть более суток ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 14:58:45 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
BelyspИнтересная идея - никогда так не думал о наследовании!!!! Надо покумекать - слишком уж нестандартно но многообещающе! НАКОНЕЦ-то НАЧАЛИ ЧИТАТЬ ТО ЧТО ВАМ ПИШУТ! А прошло-то всего-то чуть более суток Ничего подобного!!!! это было написано в первый раз в таком понятном виде !!!!! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 17:07:04 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
BelyspКОНТРАГЕНТ ------------------------ ID Контрагента ID Физлица ID ЮрЛица ID ЧП Нчнем с этого. ID Физлица,ID ЮрЛица,ID ЧП - в топку. Зачем так стразу в топку. Вариант sp, один из способов реализации наследования. К стати, пока в оракле наследование не поддерживалось, такой подход был описан в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 17:08:56 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
explaЗачем так стразу в топку. Вариант sp, один из способов реализации наследования. К стати, пока в оракле наследование не поддерживалось, такой подход был описан в документации.1) Как мы будем интерпретировать запись, если у нас заполнено сразу три поля? 2) Если у нас появится новый тип - будем добавлять новое поле? А если этих типов 50 ? Как там насчет нормализации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 17:12:11 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
авторИнтересная идея - никогда так не думал о наследовании!!!! Надо покумекать - слишком уж нестандартно но многообещающе! Все это давно известно.Полистай 2ю главу в букваре "Data Model Resource Book". В общем виде все твои сущности там рассмотрены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 17:17:32 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
BelyexplaЗачем так стразу в топку. Вариант sp, один из способов реализации наследования. К стати, пока в оракле наследование не поддерживалось, такой подход был описан в документации.1) Как мы будем интерпретировать запись, если у нас заполнено сразу три поля? 2) Если у нас появится новый тип - будем добавлять новое поле? А если этих типов 50 ? Как там насчет нормализации? 1) так не заполняйте сразу три поля. Ограничения целостности то на что? Наконец, лишние значения можно просто игнорировать используя приоритеты. К стати, в вашем варианте нет гарантии, что Контрагент существует, а соответсвующие ФЛ, ЧП и т.п. отсутствуют - нет и никакими декларативными ограничениями целостности вы эту проблему не решите. А в отвергнутом варианте всё это легко решается внешними ключами и проверками на записи. 2) Ну что поделаешь... Всё равно на новый тип систему придётся затачивать хоть так, хоть эдак. Количество типов не имеет значения пока СУБД позволяет добавлять поля в таблицу и никакого нарушения НФ тут нет. Или вы считаете, что нормализация, это когда количество колонок в таблице уменьшается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 17:57:00 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35704132&tid=1543490]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 500ms |

| 0 / 0 |
