powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Весомый плюс Юкон над ORACLE
25 сообщений из 200, страница 6 из 8
Весомый плюс Юкон над ORACLE
    #32836048
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Роман Дынник

>Ничего она (Java) не мешается, Oracle-у уж точно :), а что касается Sybase дык писать нужно лучше чтоб под ногами java не мешалась.

Так никаких проблем, джава в сайбейзе есть, все замечательно, только использовать ее почему-то никто не хочет. Почему вдруг все дружно игнорируют джаву в SQL сервере?
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836261
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Ну во первых кто мешает вызывать просто sp_Ins5(@xml), передавая туда сразу все аттрибуты класса и его предков ? 
Мы же про передачу иерархического объекта заговорили в виде xml в сравнении с java-объектом.
Код: plaintext
Во вторых Вы пытаетесь на РСУБД наложить ООП, а при моем подходе это просто ни к чему. Зачем спрашивается на уровне клиента плодить бизнес-классы, если вся бизнес-логика лежит на СУБД и от клиента требуется ума только получить данные в виде набора данных, показать их для просмотра, организовать их отложенное изменение и потом пакетно сохранить все изменения ?
Сейчас многие так и поступают, именно на РСУБД накладывают ООП, и это правильно, иначе при огромном количестве сущностей поддержка проекта превращается в сущий ад в котором может разобраться только "основной" разработчик. Потом, у меня, например, как я уже говорил ВСЯ бизнес-логика на сервер не переносится. На сервер переносятся только CRUD операции в виде слоя хп. Что же касается бизнес-логики (далее БЛ) по части различных проверк на корректность ввода, в ряде случаев (не во всех) ветвлений if-ов - по моему мнению это дело именно среднего звена (если мы говорим о многозвенной арх-ре). При этом часть БЛ касающаяся проверки на корректность ввода дублируется и в среднем звене и на клиенте. И все это способствует масштабированию.
Код: plaintext
 Для организации такой работы в любой среде построения клиентов сейчас существуют стандартные компоненты доступа к данным, их визуального просмотра и построения отчетов. Этого вполне достаточно, чтобы организовать клиента в виде GUI приложения или интернет-проекта.
У меня стандартные компоненты доступа к данным используются для заполнения и просмотра списков и именно в этом их основное предназначение (если говорить о различных recordeset, dataset, reader-ах).

Код: plaintext
В данном случае по моему личному мнению ООП будет использоваться по прямому его назначению - быстрой организации и легкой поддержки интерфейсной части. Всякие попытки перенести бизнес-обьекты на классы и потом танцевать с бубном по проведению их хранения и эффективности обработки на РСУБД только усложняют задачу.
Странно, но мне как раз все это облегчает задачу.
Я знаю что вы являетесь поклонником продуктов Sybase...
Так вот, PD мне сильно облегчает жизнь в плане написания CRUD, и именно тем что при проектировании БД я использую ОО подход. Весь слой CRUD, а это порядка 70-80% всех хп в проекте генерируется VBSсript-ом на основании концептуальной модели данных, в соответствии с наследованием сущностей и их атрибутами.
В некоторых системах используются всякие Persistence/mapping компоненты, которые позволяют автоматически сохранять ОБЪЕКТ в БД (мапить его на sql-выражения) без особых услилий. Т.е. не нужно заботиться о создании слоя хп или прямых запросах. И эти компоненты давно ТАКЖЕ давно стали стандартными (JDO-java data object например). Лично я их не использую, именно потому что не нашел нигде маппинг на хп, но они, в ряде случаев, позволяют значительно сократить сроки разработки для небольших и средних проектов, а также используются в настраиваемых ERP-системах.
Код: plaintext
где ООП очень полезна в плане создания повторно-наследуемых форм, компонент и других интерфейсных частей приложения. 
ООП полезно везде. Пора перестать мыслить таблицами и полями.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836268
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу во первых кто мешает вызывать просто sp_Ins5(@xml), передавая туда сразу все аттрибуты класса и его предков ?
Мы же про передачу иерархического объекта заговорили в виде xml в сравнении с java-объектом.
авторВо вторых Вы пытаетесь на РСУБД наложить ООП, а при моем подходе это просто ни к чему. Зачем спрашивается на уровне клиента плодить бизнес-классы, если вся бизнес-логика лежит на СУБД и от клиента требуется ума только получить данные в виде набора данных, показать их для просмотра, организовать их отложенное изменение и потом пакетно сохранить все изменения ?
Сейчас многие так и поступают, именно на РСУБД накладывают ООП, и это правильно, иначе при огромном количестве сущностей поддержка проекта превращается в сущий ад в котором может разобраться только "основной" разработчик. Потом, у меня, например, как я уже говорил ВСЯ бизнес-логика на сервер не переносится. На сервер переносятся только CRUD операции в виде слоя хп. Что же касается бизнес-логики (далее БЛ) по части различных проверк на корректность ввода, в ряде случаев (не во всех) ветвлений if-ов - по моему мнению это дело именно среднего звена (если мы говорим о многозвенной арх-ре). При этом часть БЛ касающаяся проверки на корректность ввода дублируется и в среднем звене и на клиенте. И все это способствует масштабированию.
автор Для организации такой работы в любой среде построения клиентов сейчас существуют стандартные компоненты доступа к данным, их визуального просмотра и построения отчетов. Этого вполне достаточно, чтобы организовать клиента в виде GUI приложения или интернет-проекта.
У меня стандартные компоненты доступа к данным используются для заполнения и просмотра списков и именно в этом их основное предназначение (если говорить о различных recordeset, dataset, reader-ах).

авторВ данном случае по моему личному мнению ООП будет использоваться по прямому его назначению - быстрой организации и легкой поддержки интерфейсной части. Всякие попытки перенести бизнес-обьекты на классы и потом танцевать с бубном по проведению их хранения и эффективности обработки на РСУБД только усложняют задачу.
Странно, но мне как раз все это облегчает задачу.
Я знаю что вы являетесь поклонником продуктов Sybase...
Так вот, PD мне сильно облегчает жизнь в плане написания CRUD, и именно тем что при проектировании БД я использую ОО подход. Весь слой CRUD, а это порядка 70-80% всех хп в проекте генерируется VBSсript-ом на основании концептуальной модели данных, в соответствии с наследованием сущностей и их атрибутами.
В некоторых системах используются всякие Persistence/mapping компоненты, которые позволяют автоматически сохранять ОБЪЕКТ в БД (мапить его на sql-выражения) без особых услилий. Т.е. не нужно заботиться о создании слоя хп или прямых запросах. И эти компоненты давно ТАКЖЕ давно стали стандартными (JDO-java data object например). Лично я их не использую, именно потому что не нашел нигде маппинг на хп, но они, в ряде случаев, позволяют значительно сократить сроки разработки для небольших и средних проектов, а также используются в настраиваемых ERP-системах.
авторгде ООП очень полезна в плане создания повторно-наследуемых форм, компонент и других интерфейсных частей приложения.
ООП полезно везде. Пора перестать мыслить таблицами и полями.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836286
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>>c127
Не используют потому что не привыкли, потому что мыслят таблицами и записями, потому что надо время на изучение а его нет, потому что не везде целесообразно применять java-процедуры.
Если признаться, раньше я и сам задавался вопросом где и зачем они мне могут понадобиться.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836340
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторООП полезно везде. Пора перестать мыслить таблицами и полями.
Да-да, и еще пора опять переносить бизнес-логику на клиента, делать в каждой системе обязательное среднее звено, доступ к БД может быть только через клиента или среднее звено......
А может все же облегчить себе жизнь?
Иногда нужно помыслить таблицами и полями - проще жить станет, намного проще.
А еще ООП не надо переносить на данные и вообще на все, что шевелится :) - это технология разработки и программирования приложения, но никак не технология манипулирования данными.

Вы расскажите смысл представления данных как объектов? Я вот не вижу. И гораздо проще иметь набор таблиц с полями, с которыми можно сделать что угодно, которые являются родными по отношению к СУБД - и следовательно проще и быстрее их обрабатывать и т.д.

В Оракле вот давно есть возможность создавать пользовательские типы данных, с методами, свойствами... Ну и что, много кто ее использует, эту возможность?

-- Tygra's --
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836353
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и опять же легкость поддержки системы - если у вас логика зашита в клиента и вам нужно чего-то изменить, но не в выводе информации для клиента, а именно часть бизнес-логики, то вам придется каждый раз компилять клиента и выкладывать пользователям. В случае же бизнес-логики на сервере, ничего никуда ненадо выкладывать - все меняется для всех прозрачно. Вы еще не почувствовали разницу? Может вы просто не пробовали сделать обычное приложение с обычной РСУБД? Попробуйте.

Почему всегда забывают про поддержку (изменение, дополнение, исправление) системы??? Хотя это 70% работы. Но на это наплевать? Мда.

-- Tygra's --
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836389
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник


Тем что делается несколько вызовов и как следствие - старт транзакции на стороне среднего звена/клиента вместо того что бы стартануть на сервере с последующими возможными проблемы с deadlock-ми.
Как вам (100+1) вызов на сохранение счета со 100 позициями?

С уровнями изоляции если правильно работать - то никаких deadlock'ов не будет
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836392
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И почему-то все рассматривается со стороны разработчика клиента : мне программировать так удобно, я знаю ООП и больше ничего знать нехочу, всякие там PL/SQL, TSQL учить и знать не хочу да и ваще мне пофиг все эти БД - я же универсальный программист, к СУБД никакого отношения не имею зато смогу сделать под любую БД, у меня же объекты!!!
Почему-то забывают про админа/архитектора/разработчика БД, который потом, когда жареный петух клюнет, каким-то образом должен будет разгребать завал, пытаясь поднять производительность, построить индексы, поменять чего еще, если вообще это можно сделать.
А забывают зря. Может потому что не знают, что сделать клиента - это 30% дела, а сделать так, чтобы это все работало, да еще без затыков, быстро и т.д. и т.п. - остальная работа.

-- Tygra's --
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836548
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВы расскажите смысл представления данных как объектов? Я вот не вижу. И гораздо проще иметь набор таблиц с полями, с которыми можно сделать что угодно, которые являются родными по отношению к СУБД - и следовательно проще и быстрее их обрабатывать и т.д.

В Оракле вот давно есть возможность создавать пользовательские типы данных, с методами, свойствами... Ну и что, много кто ее использует, эту возможность?

А я и не говорил про создание пользовательских типов данных и ПОЛНОЙ реализации ООП в БД. Я наоборот против этого. Я говорил о способе мышления и как грамотно отразить классы на обычные таблицы с полями с привычними типами данных. Если отбросить среднее звено, клиента, и рассматривать одну лишь БД она НИЧЕМ не будет отличаться. Те же таблицы, типы данных, хп, вьюхи. Просто она будет более формализована, более прозрачна, ее модель будет более понимаема. Вообщем обычная база с таблицами в 3 НФ. Все что там присутствует от ООП - это всего лишь:
наследование в виде связи 1-1
методы в виде слоя хп
свойств и акцессоров get/set там нет и в помине, события... ну можно в первом приближении с большой натяжкой определить их как триггеры, но триггеры я вообще обычно не использую.

авторНу и опять же легкость поддержки системы - если у вас логика зашита в клиента и вам нужно чего-то изменить, но не в выводе информации для клиента, а именно часть бизнес-логики, то вам придется каждый раз компилять клиента и выкладывать пользователям. В случае же бизнес-логики на сервере, ничего никуда ненадо выкладывать - все меняется для всех прозрачно. Вы еще не почувствовали разницу? Может вы просто не пробовали сделать обычное приложение с обычной РСУБД? Попробуйте.
я почувствовал... когда в хп была зашита вся бизнес логика... начиная от проверки на допустимость ввода до выполнения cmdshell и вызовов COM. Сервак просто задыхался от выполнения таких процедур.
По поводу поодержки - разделяйте код на сборки, модули...
Про перенос БЛ на клиенте - я вообще к этому не призывал, я говорил что на клиенте должна ДУБЛИРОВАТЬСЯ проверка корректности ввода данных, это сокращает число повторных обращений к серверу (СУБД или к среднему звену или к веб серверу в случае если клиент - браузер, а проверка корректности ввода на JS).

>>tygra, вы вникайте повнимательнее в сообщения.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836633
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Роман Дынник
Сейчас многие так и поступают, именно на РСУБД накладывают ООП, и это правильно, иначе при огромном количестве сущностей поддержка проекта превращается в сущий ад в котором может разобраться только "основной" разработчик.

ООП также ничем не упрощает поддержку систем.
а вот что сильно упрощает - так это хорошо комментированные исходники и нормальная документация. а ООП или не ООП подход был при разработке системы - это вторичное и совсем не самое критичное.
какая разница, что переписывать при добавлении входного параметра в процедуру: саму процедуру и все вызовы к ней при обычном подходе или метод и все его вызовы при ООП?
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836661
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте разберемся по порядку. А то что-то я уже не понимаю ничего.
Давайте только без многозвенок. :)

Бизнес-логика. Так где же она? А то что-то в параллель топику про ООСУБД получилось ощущение, что вся БЛ на клиенте/среднем звене.
Лично у меня вся БЛ в СУБД, естественно за некоторым исключением или дополнением на клиенте в виде простейшего контроля ввода данных, типа ввели/неввели. Все, больше на клиенте ничего нет.

авторА я и не говорил про создание пользовательских типов данных и ПОЛНОЙ реализации ООП в БД. Я наоборот против этого.
Тут я тоже против.
авторЯ говорил о способе мышления и как грамотно отразить классы на обычные таблицы с полями с привычними типами данных.
Зачем???????????? Кто такие классы? Зачем они?
авторЕсли отбросить среднее звено, клиента, и рассматривать одну лишь БД она НИЧЕМ не будет отличаться. Те же таблицы, типы данных, хп, вьюхи. Просто она будет более формализована, более прозрачна, ее модель будет более понимаема.
Тогда смысл вашего ООП? Хотя как мне кажется, если в БД будут отражаться классы, то все-же не так будет понятно, как если бы структура была изначально сделана как обычно.
автор Вообщем обычная база с таблицами в 3 НФ. Все что там присутствует от ООП - это всего лишь:
наследование в виде связи 1-1
методы в виде слоя хп
свойств и акцессоров get/set там нет и в помине, события... ну можно в первом приближении с большой натяжкой определить их как триггеры, но триггеры я вообще обычно не использую.
Зачем вам ООП в данных, ну не понимаю я. Я не вижу смысла городить огород с ООП над данными. если у меня и так все есть и я все могу сделать с данными без проблем. Мне бы пример какой, показывающий разницу :)

авторя почувствовал... когда в хп была зашита вся бизнес логика... начиная от проверки на допустимость ввода до выполнения cmdshell и вызовов COM. Сервак просто задыхался от выполнения таких процедур.
Так с мозгами делать надо. И не пихать в СУБД то, чего там быть не должно. Можно и на клиенте все так сделать, что он и не запустится :))
авторПо поводу поодержки - разделяйте код на сборки, модули...
Какая разница? Все-равно если править в клиенте, то его придется копировать и перезапускать.
авторПро перенос БЛ на клиенте - я вообще к этому не призывал, я говорил что на клиенте должна ДУБЛИРОВАТЬСЯ проверка корректности ввода данных, это сокращает число повторных обращений к серверу (СУБД или к среднему звену или к веб серверу в случае если клиент - браузер, а проверка корректности ввода на JS).
Ну да, но проверка корректности ввода данных может означать разные вещи.

автор>>tygra, вы вникайте повнимательнее в сообщения.
Стараюсь. Сбивает мысли соседний топик про ООСУБД, елы-палы :))

======
И так. Пока что я никак не вижу смысла укладывать данные в ООП структуру.
Примеров пока не видел - поэтому больше ничего не могу сказать.

-- Tygra's --
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836679
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>>Tygra's
Для примера, какие бы вы таблицы создали для простого
справочника клиентов с разделением на физические и юридические лица?
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836696
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to funikovyuri
авторТем что делается несколько вызовов и как следствие - старт транзакции на стороне среднего звена/клиента вместо того что бы стартануть на сервере с последующими возможными проблемы с deadlock-ми.
Как вам (100+1) вызов на сохранение счета со 100 позициями?
авторС уровнями изоляции если правильно работать - то никаких deadlock'ов не будет
Да? Даже если на 99 вызове внутри одной транзакции стартующей на клиенте/среднем звене неожиданно пропадет соединение с сервером БД?
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836723
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник

Рома, среди читающих этот топик, я среди тех кто полностью на вашей стороне. Просто думаю спорить об этом бесполезно (один тигра чего стоит :) )

Да? Даже если на 99 вызове внутри одной транзакции стартующей на клиенте/среднем звене неожиданно пропадет соединение с сервером БД?
Да - DEADLOCK 'a не будет. Другой вопрос что приведенный вами пример относиться скорее не к вопросу выбора о том откуда управлять транзакциями (с клиента или с БД), а просто к типичной ошибке проектирования (решается с помощью всем известного патерна facade)
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836727
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, незакоммиченные данные на блокировочнике можно перехватить через грязное чтение, правда все никак не дойдут руки, чтоб выложить как это делается.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836752
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman

далось, блин, это грязное чтение
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836785
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДля примера, какие бы вы таблицы создали для простого
справочника клиентов с разделением на физические и юридические лица?
А прямо так, как у нас и сделано :)
Таблица Клиент, где все данные, относящиеся и туда и сюда: ФИО, мыло, дата, ... в общем, типа такого. И поле Юрлицо - если 0, значит нет, если 1 - значит это юрик, и тогда у него есть реквизиты =>
А это уже таблица Реквизиты, в которой есть ссылка на Клиента и все прибамбасы: счет, банк и т.д.
Вот вроде и все. Когда мне нужен просто клиент - селект фром Клиент. Если нужны реквизиты к тому же - left join Реквизиты. Ну и т.д.
Как вы можете прокомментировать?

авторРома, среди читающих этот топик, я среди тех кто полностью на вашей стороне. Просто думаю спорить об этом бесполезно (один тигра чего стоит :) )
Да, уж поспорить то я люблю :)). Но тут не спор ради спора - просто хочу узнать, чем лучше или чем хуже данная реализация.
Т.к. основные действия (да и почти все вообще) над данными производятся в БД, то какой смысл как-то специально менять их структуру для представления на клиенте?

авторкстати, незакоммиченные данные на блокировочнике можно перехватить через грязное чтение, правда все никак не дойдут руки, чтоб выложить как это делается.
"Выложу" для MS SQL, так и быть :)
Код: plaintext
select * from table with(nolock)

-- Tygra's --
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836919
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, вспоминая про "весомые плюсы". Источник :

OTN : Can you tell us more about Oracle Developer Tools for Visual Studio .NET and Oracle Database Extensions for .NET?

Datta : Oracle joined the Microsoft Visual Studio Industry Partner (VSIP) program as a Premier Level Partner in May 2004 and we have been working very actively on developing Oracle Developer Tools for Visual Studio .NET. Oracle Developer Tools is a tightly integrated tool set within Visual Studio .NET to enable developers to use the power of the Oracle Database easily and effectively. With this tool set, Windows developers do not need to learn any new tool and can remain in Visual Studio environment throughout a project's lifecycle.

Oracle Developer Tools for Visual Studio .NET will support Oracle schema browsing and modification, wizards and designers, automatic code generation, an integrated help system, a PL/SQL editor, and many other features. A Beta release of the tool set will be available by the end of 2004. A production release is slated for the first quarter of 2005.

Oracle Database Extensions for .NET allow development and deployment of .NET based stored procedure in the Oracle Database. Stored procedures can be in VB.NET, C# or C++, and the deployment is supported from within Visual Studio environment. Stored procedures can use the server-side ODP.NET for interacting with the database. This release will be available in the first half of 2005.

OTN : What are the differentiators for Oracle in .NET environment?
"Oracle Application Server supports many features for integration with Windows and .NET."

Datta : Oracle Application Server supports many features for integration with Windows and .NET: I'll just go through a mental list, highlighting some features as I go.
The first that comes to mind is Windows Single Sign-On. Once a user is logged on to Windows, no further credentials are required. We also provide Active Directory integration, which extends user identity management through Oracle Internet Directory and the Oracle Identity Management infrastructure. Then there's Microsoft IIS support, where even though an application is developed for Oracle Application Server, it can still use Microsoft IIS as a Web server. We further extend integration through Oracle Portal, to aggregate Microsoft content, such as that from Exchange, and then wireless-enable it. Message exchange is also possible with Biztalk Server, ensuring business process integration.

Other integration has been done with Microsoft Cluster Services, providing high-availability for the Oracle Application Server infrastructure. We also offer interoperability with the use of Web Services, where interoperability with .NET applications and services are key features. Then there's WebDAV integration, which allows Windows desktop or Windows applications such as Explorer or Office to interoperate with those developed using Oracle Application Server.

Finally, we provide things such as Oracle Web Cache for improving the performance of ASP applications; a database adapter for SQL Server, where interoperability is enabled from Oracle Application Server to SQL Server; and Windows CE-based device support for mobile applications, where a broad range of Windows-compatible devices for individual and enterprise applications are enabled.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836930
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТаблица Клиент, где все данные, относящиеся и туда и сюда: ФИО, мыло, дата, ... в общем, типа такого. И поле Юрлицо - если 0, значит нет, если 1 - значит это юрик, и тогда у него есть реквизиты =>
А это уже таблица Реквизиты, в которой есть ссылка на Клиента и все прибамбасы: счет, банк и т.д.
Вот вроде и все. Когда мне нужен просто клиент - селект фром Клиент. Если нужны реквизиты к тому же - left join Реквизиты. Ну и т.д.
Как вы можете прокомментировать?

Как же ФИО может относиться и к физ лицам и к юр?
И видимо ФИО хранится в одном поле и используется либо как наименование организации, либо как фамилия имя отчество для физ/лица?

А У нас так:
тбл. Контрагент (id,краткое наименование, инн)
тбл. Физ. лицо (id,Фамилия, Имя, Отчество ...)+fk к контрагенту по id (1-к-1 наследование)
тбл. Юридическое лицо/компания (id,Полное наименование, реквизит1, реквизит2 ...)+fk к контрагенту по id (1-к-1 наследование)

для вывода всех клинтов: select * from контрагент
для вывода всех юриков: select * from [Юридическое лицо] JOIN контрагент
для вывода всех физ.лиц: select * from [Физическое лицо] JOIN контрагент

видите, только из-за того что вы отвергаете мышление в терминах ООП вы сделали outer join, когда можно было join, что выполнится быстрее (незачем тащить реквизиты для физического лица). Это по мелочи. В принципе таблица реквизиты у вас тоже самое что и у меня юр/лицо и здесь тоже наследование (таблица Реквизиты, в которой есть ссылка на Клиента и все прибамбасы: счет, банк и т.д).
Но явно не выделена сущность "Физическое лицо" и в этом ошибка проектирования.

Теперь дальше...
Возникло новое требование.
Требуется создать справочник сотрудников, при чем сотрудник может быть клиентом.
Ваш действия?
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836947
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(Роман Дынник) >>
тбл. Контрагент (id,краткое наименование, инн)
тбл. Физ. лицо (id,Фамилия, Имя, Отчество ...)+fk к контрагенту по id (1-к-1 наследование)
тбл. Юридическое лицо/компания (id,Полное наименование, реквизит1, реквизит2 ...)+fk к контрагенту по id (1-к-1 наследование)
==

Всё-таки плохо, что можно завести контрагента, который будет ни физическим, ни юридическим лицом.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836950
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы сказал, что контагент - это обобщение понятия физических и юридических лиц. То есть, сначала надо заводить физическое или юридическое лицо. Потом делать ссылку в контрагенте на это лицо.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836965
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник

В ER-нотации есть отношение generalization - так что при желании и знаниях решение будет в точности соответствовать предложенному
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836978
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.fun4me.narod.ruВсё-таки плохо, что можно завести контрагента, который будет ни физическим, ни юридическим лицом.
А кто сказал, что его можно завести? Для этого в Oracle Designer, например, существует специальное понятие "arc" - которое трансформируется в констрейнт примерно следующего вида

Код: plaintext
check ((a is not null and b is null) or (a is null and b is not null))

автор
А У нас так:
тбл. Контрагент (id,краткое наименование, инн)
тбл. Физ. лицо (id,Фамилия, Имя, Отчество ...)+fk к контрагенту по id (1-к-1 наследование)
тбл. Юридическое лицо/компания (id,Полное наименование, реквизит1, реквизит2 ...)+fk к контрагенту по id (1-к-1 наследование)

для вывода всех клинтов: select * from контрагент
для вывода всех юриков: select * from [Юридическое лицо] JOINконтрагент
для вывода всех физ.лиц: select * from [Физическое лицо] JOINконтрагент
Реальные структуры предъявляют еще большие требование - например, стоит помнить, что банки (в которых у контрагентов расчетные счета) имеют корр.счета в других банках, а сами банки при этом являются организациями и могут являться контрагентами. Впрочем, не понимаю, при чем здесь объектный подход - это вопрос грамотного или неграмотного проектирования в условиях той или иной конкретной задачи. ER-проектирование - достаточно "объектно".

Что еще хочется сказать по поводу сказанного Вами - в большинстве подобных задач запрос должен выглядеть как

Код: plaintext
1.
2.
select * from v$contractors
select * from v$phpersons
select * from v$organizations

То есть - постоянные join-ы стоит прятать во вьюхи (естественно, не забывая об эффективности). Во всяком случае, наличие в 50 различных запросах фразы "[Юридическое лицо] JOIN [контрагент]" меня серьезно насторожит.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836982
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ бы сказал, что контагент - это обобщение понятия физических и юридических лиц
Именно это я и хотел сказать.
Код: plaintext
Всё-таки плохо, что можно завести контрагента, который будет ни физическим, ни юридическим лицом
Это уже бизнеслогика.
авторТо есть, сначала надо заводить физическое или юридическое лицо. Потом делать ссылку в контрагенте на это лицо.
Это как? т.е. в контрагенте у вас будет 2-а поля одно из которых ссылается на ф/л, другое на ю/л? Это не правильно.
...
Рейтинг: 0 / 0
Весомый плюс Юкон над ORACLE
    #32836986
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, только довайте не будем спорить по поводу контрагентов,физиков и юриков.Если есть желание подискутировать по этому поводу, то в ERP и учетных система есть огромный топик по этому вопросу. Вроде бы Oracle и MSSQL обсуждаем...
...
Рейтинг: 0 / 0
25 сообщений из 200, страница 6 из 8
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Весомый плюс Юкон над ORACLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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