powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DataBase
20 сообщений из 20, страница 1 из 1
DataBase
    #34171568
Василий_Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди подскажите пожалуйста (или дайте ссылку где можно почитать), как использовать связи в DataBase. Или они носят чисто декаративный характер??
...
Рейтинг: 0 / 0
DataBase
    #34171593
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем "декорация", но используются только и исключительно на этапе разработки. В готовом приложении - бесполезны. Это инструмент, облегчающий разработку приложения.

Связи и отношения между таблицами
...
Рейтинг: 0 / 0
DataBase
    #34171620
Василий_Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо!
...
Рейтинг: 0 / 0
DataBase
    #34171626
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМНе совсем "декорация", но используются только и исключительно на этапе разработки. В готовом приложении - бесполезны. Это инструмент, облегчающий разработку приложения.

Связи и отношения между таблицами
А какже DRI ? Тоже декорация?!
Не согласен!
С уважением, Алексей.
...
Рейтинг: 0 / 0
DataBase
    #34171905
Василий_Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-K ВладимирМНе совсем "декорация", но используются только и исключительно на этапе разработки. В готовом приложении - бесполезны. Это инструмент, облегчающий разработку приложения.

Связи и отношения между таблицами
А какже DRI ? Тоже декорация?!
Не согласен!
С уважением, Алексей.
По подробнее можно про DRI, пожалуйста!
...
Рейтинг: 0 / 0
DataBase
    #34171919
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий_Н

DRI - это собственное изобретение. Вероятно, речь идет о (DataBase) Referential Integrity

Подробнее об этом читай здесь

http://www.foxclub.ru/articles/index.php?id=37

Aleksey-K

Еще раз внимательно читаем, что именно я написал

ВладимирМЭто инструмент, облегчающий разработку приложения.

Далее несколько общеизвестных истин

Referential Integrity - "сам по себе" бесполезен. Это всего-лишь построитель. Builder или Wizard. Не знаю, как точнее будет в данном случае.

Его цель - это создание определенных хранимых процедур и подключение некоторых из них, как определенных триггеров.

Да, Referential Integrity использует постоянные связи. НО! КОГДА он их использует? В какой момент?

Очевидно, только и исключительно в процессе формирования хранимых процедур и триггеров. ВСЕ! Внутри тела триггера и хранимых процедур эти постоянные связи никак, никоим образом не используются.

Вот и получается, что постоянные связи были использованы только в момент генерации триггеров. На этапе РАЗРАБОТКИ. В готовом приложении (Run-Time) они не используются.

Именно это я и имел в виду. Постояные связи - инструмент РАЗРАБОТКИ. В Run-Time - бесполезны.
...
Рейтинг: 0 / 0
DataBase
    #34172177
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ
DRI - это собственное изобретение. Вероятно, речь идет о (DataBase) Referential Integrity

К сожалению, DRI (declarative referential integrity) - декларативную целостность, придумал не я, а то бы жил бы в Сочи :). Странно, что вы Владимир не встречали такую абревеатуру!
Другое дело, что в VFP она реализуется через процедурную целостность (Хранимые процедуры, Триггеры), но так, как это сделано прозрачно для пользователя, то вполне корректно назвать реализацию Referential Integrity в VFP, как DRI! Вы же не сами пишети эти триггеры, а за вас это делает Wizard!
А связи между таблицами (а также указания реакции на нарушения целостности) нужны Wizard , что бы он САМ построил триггеры для поддержания целостности базы данных. Если Wizard все делает сам, то вполне логично назвать такой вариант построения целостности, как декларативной.
Теперь далее:
ВладимирМ
В готовом приложении - бесполезны

Вы что предлагаете, после того, как Wizard создал Триггеры удалить связи?
Я вас правильно понял?
А если надо будет что-то поменять ? Что же заново все связи рисовать?
С уважением, Алексей.
...
Рейтинг: 0 / 0
DataBase
    #34172268
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встречал-то я много каких аббревиатур, но, поскольку большинство авторов, вот как Вы сейчас, просто приводят аббревиатуру НИКАК ее не расшифровывая, то понять, о чем же идет речь зачастую совершенно невозможно. Вот как в данном случае.

По поводу всего остального, повторю еще раз

ВладимирМЭто инструмент, облегчающий разработку приложения.

В процессе написания приложения на FoxPro таких "подпорок" для облегчения написания приложения огромное количество. Некоторые очевидные (вот как постоянные связи или SET ASSERTS), некоторые совсем не очевидные (вроде дополнительных функций и процедур, обрабатывающих ситуации, которые могут возникнуть ТОЛЬКО при отладке - некорректное значение параметра, например).

Удалять или не удалять такие "подпорки" - личное дело каждого. Я считаю, что удалять особого смысла нет. Результат не стоит усилий. Но вот знать, что это используется только и исключительно на этапе РАЗРАБОТКИ - очень даже важно. О чем я и написал.
...
Рейтинг: 0 / 0
DataBase
    #34178401
FOX_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Учитывая посещение вами форума по SQL Server, откровенно говоря, непонятна ваша настойчивость в данном вопросе.
...
Рейтинг: 0 / 0
DataBase
    #34178693
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий_НЛюди подскажите пожалуйста (или дайте ссылку где можно почитать), как использовать связи в DataBase. Или они носят чисто декаративный характер??
Как правильно пояснил Владимир - они не используются в FoxPro... так, как это используется в сервеной базе данных MS SQL Server... Только для облегчения работы построителя этих самых упомянутых выше - тригеров и хранимых процедур...

Мое добавление к данному топику, что использование данных вещей очень сильно замедляет работу с данными FoxPro... При более 200-300 тысяч записей наступают очень большие "тормоза", отсюда практический вывод - отказаться от этой RI либо использовть MS SQL Server 2005, что собственно компания-производитель FoxPro и рекомендует...
...
Рейтинг: 0 / 0
DataBase
    #34178800
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Ch...либо использовть MS SQL Server 2005, что собственно компания-производитель FoxPro и рекомендует...
А что ИМ еще остается? Рекомендовать FireBird? :)
...
Рейтинг: 0 / 0
DataBase
    #34178817
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FOX_userУчитывая посещение вами форума по SQL Server, откровенно говоря, непонятна ваша настойчивость в данном вопросе.
Модератор: Давайте уважать друг друга и не переходить на личности.
А если неофициально, то у меня в профиле вообще мало MS SQL Server - это говорит только о том, что по данной технологии очень много литературы, где можно найти ответы на все вопросы... Чем собственно и пользуюсь...

C FoxPro к сожалению, увы - другая картина - кроме HELP, написанного хорошими ребятами почти ничего от VFP 9.1 нет...

P.S. У самых крутых специалистов данного форума в профиле есть только ПТ
...
Рейтинг: 0 / 0
DataBase
    #34178851
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Chотказаться от этой RI
Сергей, не поднимай руку на святое :)
Есть на просторах инета самописные триггеры RI, оригинальные похоже
не сильно изменились со времён VFP3. Можно и личное творчество проявить.
Сменивший меня на боевом посту коллега заменил все визардовские RI триггера
на более другие :). Вроде пока все живы, хотя я теперь смотрю на это со стороны...
Лично меня стандартные пока не подводили.
...
Рейтинг: 0 / 0
DataBase
    #34178859
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyvСергей, не поднимай руку на святое :)
Есть на просторах инета самописные триггеры RI, оригинальные похоже
не сильно изменились со времён VFP3. Можно и личное творчество проявить.
Сменивший меня на боевом посту коллега заменил все визардовские RI триггера
на более другие :). Вроде пока все живы, хотя я теперь смотрю на это со стороны...
Лично меня стандартные пока не подводили.
Просто поделился своим опытом и опытом одной большой ERP, где все эти триггеры и хп похоронили очень хорошую идею... Они отказались, скорость возросла неимоверно и они пока держутся на рынке... А какой размер у Вас таблиц и используются ли они в дополнение с Ole DB Provider?
...
Рейтинг: 0 / 0
DataBase
    #34178901
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey ChМое добавление к данному топику, что использование данных вещей очень сильно замедляет работу с данными FoxPro... При более 200-300 тысяч записей наступают очень большие "тормоза", отсюда практический вывод - отказаться от этой RI либо использовть MS SQL Server 2005, что собственно компания-производитель FoxPro и рекомендует...
Здесь проблема не в RI (это частный случай), а в логике обработки триггеров в FoxPro вообще.

Дело в том, что FoxPro обрабатывает по одной записи за раз. Т.е. даже в групповых командах вроде APPEND FROM добавление пойдет по одной записи с тем, чтобы обеспечить корректную обаботку триггера на каждую запись .

Отсюда и тормоза при массовых обработках .

Если массовая обработка - это довольно частая задача, то надо предусмотреть специальные флаги в триггерах, чтобы отключать на это время триггера и делать проверку программно, после всех добавлений.

Если тормоза пошли при "штатной" работе (модификация одного документа), то это уже вопрос оптимизации самих триггеров. Не должен он тормозить при таких незначительных масштабах. "Что-то в консерватории надо подправить" (С)
...
Рейтинг: 0 / 0
DataBase
    #34180323
FOX_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch
А если неофициально, то у меня в профиле вообще мало MS SQL Server - это говорит только о том, что по данной технологии очень много литературы, где можно найти ответы на все вопросы... Чем собственно и пользуюсь...

Ну в общем-то комментарий (без перехода на личности как-раз) был как-раз не вам, а вы все-таки продемонстрировали переход на личности (или, если хотите, в очередной раз безадресно поделились личным опытом).

Sergey Ch
При более 200-300 тысяч записей наступают очень большие "тормоза", отсюда практический вывод - отказаться от этой RI либо использовть MS SQL Server 2005

Чисто практический интерес: а на каком количестве пользователей, на каких операциях, на каком качественном составе этих 200-300 тысяч записей, на каком железе такое наблюдается ? Без намеков, но бывает случаи, когда в триггеры и RI навешивают достаточное количество кода, которого там не должно быть в принципе (ибо логика что и где проверять все-таки должна быть разумной: контроль целостности данных отдельно, бизнес-логика отдельно).

Sergey Ch
опытом одной большой ERP

Не откроете секрет, какой именно ? В небезызвестной 1с(dbf-версия), например, выбран не фоксовый контейнер базы и организован не самый плохой подход для работы со словарем базы (хотя реализован однозначно не лучший способ с самими данными и журналами измеений). При этом работа со ссылочной целостностью в общем-то мало кого напрягает.
...
Рейтинг: 0 / 0
DataBase
    #34181695
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey ChА какой размер у Вас таблиц и используются ли они в дополнение с Ole DB Provider?
Таблиц в базе на сегодня ~250, размер основных рабочих таблиц (не справочников) 150-850 тыс.записей
Массированная вставка используется время от времени подготовленным человеком - администратором подсистемы и время работы определяется по большей части доп.проверками и
перекодированием. Основная работа программы организована с нормальным :) количеством
вставок/удалений и полным отсутствием тормозов на этой почве.

В модальных формах при вводе/редактировании отсутствуют дублирующие доп.проверки - перехватывается ошибка соответствующего триггера - всё мгновенно.

Никаких провайдеров, всё нативно :). Но повторюсь, по отношению ко мне - это "из прошлой
жизни". Наблюдаю со стороны уж скоро 2 года, всё работает и развивается.
...
Рейтинг: 0 / 0
DataBase
    #34181735
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FOX_user Чисто практический интерес: а на каком количестве пользователей, на каких операциях, на каком качественном составе этих 200-300 тысяч записей, на каком железе такое наблюдается ? Без намеков, но бывает случаи, когда в триггеры и RI навешивают достаточное количество кода, которого там не должно быть в принципе (ибо логика что и где проверять все-таки должна быть разумной: контроль целостности данных отдельно, бизнес-логика отдельно).Задач было несколько, потому как я пытался честно "прикрутить" теоритические знания баз данных к FoxPro. Самый большой провал был у меня на задаче для call-centre, но там при вставке записи проверялось достаточно много, потому как форма была довольно большая и некоторые справочники заполнялись "на лету", активных пользователей не более 50... Но давно это было и FoxPro был 7.0 Сильно большие проблемы были с электронной торговлей (VFP 8.0 OleDB Provider + ASP.NET VB.NET 1.1), вплоть до отказа в доступе следующему клиенту (задачу переделали на MS SQL Server - все сразу ушло)... После этого я не стал это применять... FOX_user Не откроете секрет, какой именно ? В небезызвестной 1с(dbf-версия), например, выбран не фоксовый контейнер базы и организован не самый плохой подход для работы со словарем базы (хотя реализован однозначно не лучший способ с самими данными и журналами измеений). При этом работа со ссылочной целостностью в общем-то мало кого напрягает.
Это импортная система Opera Pegasus, но они потом отказались и вернули всю логику на клиента...
...
Рейтинг: 0 / 0
DataBase
    #34181739
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyv Никаких провайдеров, всё нативно :). Но повторюсь, по отношению ко мне - это "из прошлой жизни". Наблюдаю со стороны уж скоро 2 года, всё работает и развивается.
Надеюсь, что у них все и дальше будет хорошо :)

Good luck!
...
Рейтинг: 0 / 0
DataBase
    #34181776
MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все пьете и пьете )
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DataBase
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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