|
|
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Люди подскажите пожалуйста (или дайте ссылку где можно почитать), как использовать связи в DataBase. Или они носят чисто декаративный характер?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 18:37 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Не совсем "декорация", но используются только и исключительно на этапе разработки. В готовом приложении - бесполезны. Это инструмент, облегчающий разработку приложения. Связи и отношения между таблицами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 18:44 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
ВладимирМНе совсем "декорация", но используются только и исключительно на этапе разработки. В готовом приложении - бесполезны. Это инструмент, облегчающий разработку приложения. Связи и отношения между таблицами А какже DRI ? Тоже декорация?! Не согласен! С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 18:58 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Aleksey-K ВладимирМНе совсем "декорация", но используются только и исключительно на этапе разработки. В готовом приложении - бесполезны. Это инструмент, облегчающий разработку приложения. Связи и отношения между таблицами А какже DRI ? Тоже декорация?! Не согласен! С уважением, Алексей. По подробнее можно про DRI, пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 22:01 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Василий_Н 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 - бесполезны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 22:15 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
ВладимирМ DRI - это собственное изобретение. Вероятно, речь идет о (DataBase) Referential Integrity К сожалению, DRI (declarative referential integrity) - декларативную целостность, придумал не я, а то бы жил бы в Сочи :). Странно, что вы Владимир не встречали такую абревеатуру! Другое дело, что в VFP она реализуется через процедурную целостность (Хранимые процедуры, Триггеры), но так, как это сделано прозрачно для пользователя, то вполне корректно назвать реализацию Referential Integrity в VFP, как DRI! Вы же не сами пишети эти триггеры, а за вас это делает Wizard! А связи между таблицами (а также указания реакции на нарушения целостности) нужны Wizard , что бы он САМ построил триггеры для поддержания целостности базы данных. Если Wizard все делает сам, то вполне логично назвать такой вариант построения целостности, как декларативной. Теперь далее: ВладимирМ В готовом приложении - бесполезны Вы что предлагаете, после того, как Wizard создал Триггеры удалить связи? Я вас правильно понял? А если надо будет что-то поменять ? Что же заново все связи рисовать? С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2006, 09:37 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Встречал-то я много каких аббревиатур, но, поскольку большинство авторов, вот как Вы сейчас, просто приводят аббревиатуру НИКАК ее не расшифровывая, то понять, о чем же идет речь зачастую совершенно невозможно. Вот как в данном случае. По поводу всего остального, повторю еще раз ВладимирМЭто инструмент, облегчающий разработку приложения. В процессе написания приложения на FoxPro таких "подпорок" для облегчения написания приложения огромное количество. Некоторые очевидные (вот как постоянные связи или SET ASSERTS), некоторые совсем не очевидные (вроде дополнительных функций и процедур, обрабатывающих ситуации, которые могут возникнуть ТОЛЬКО при отладке - некорректное значение параметра, например). Удалять или не удалять такие "подпорки" - личное дело каждого. Я считаю, что удалять особого смысла нет. Результат не стоит усилий. Но вот знать, что это используется только и исключительно на этапе РАЗРАБОТКИ - очень даже важно. О чем я и написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2006, 12:11 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Учитывая посещение вами форума по SQL Server, откровенно говоря, непонятна ваша настойчивость в данном вопросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 17:20 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Василий_НЛюди подскажите пожалуйста (или дайте ссылку где можно почитать), как использовать связи в DataBase. Или они носят чисто декаративный характер?? Как правильно пояснил Владимир - они не используются в FoxPro... так, как это используется в сервеной базе данных MS SQL Server... Только для облегчения работы построителя этих самых упомянутых выше - тригеров и хранимых процедур... Мое добавление к данному топику, что использование данных вещей очень сильно замедляет работу с данными FoxPro... При более 200-300 тысяч записей наступают очень большие "тормоза", отсюда практический вывод - отказаться от этой RI либо использовть MS SQL Server 2005, что собственно компания-производитель FoxPro и рекомендует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 18:55 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Sergey Ch...либо использовть MS SQL Server 2005, что собственно компания-производитель FoxPro и рекомендует... А что ИМ еще остается? Рекомендовать FireBird? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 19:52 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
FOX_userУчитывая посещение вами форума по SQL Server, откровенно говоря, непонятна ваша настойчивость в данном вопросе. Модератор: Давайте уважать друг друга и не переходить на личности. А если неофициально, то у меня в профиле вообще мало MS SQL Server - это говорит только о том, что по данной технологии очень много литературы, где можно найти ответы на все вопросы... Чем собственно и пользуюсь... C FoxPro к сожалению, увы - другая картина - кроме HELP, написанного хорошими ребятами почти ничего от VFP 9.1 нет... P.S. У самых крутых специалистов данного форума в профиле есть только ПТ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 20:11 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Sergey Chотказаться от этой RI Сергей, не поднимай руку на святое :) Есть на просторах инета самописные триггеры RI, оригинальные похоже не сильно изменились со времён VFP3. Можно и личное творчество проявить. Сменивший меня на боевом посту коллега заменил все визардовские RI триггера на более другие :). Вроде пока все живы, хотя я теперь смотрю на это со стороны... Лично меня стандартные пока не подводили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 20:45 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
CyvСергей, не поднимай руку на святое :) Есть на просторах инета самописные триггеры RI, оригинальные похоже не сильно изменились со времён VFP3. Можно и личное творчество проявить. Сменивший меня на боевом посту коллега заменил все визардовские RI триггера на более другие :). Вроде пока все живы, хотя я теперь смотрю на это со стороны... Лично меня стандартные пока не подводили. Просто поделился своим опытом и опытом одной большой ERP, где все эти триггеры и хп похоронили очень хорошую идею... Они отказались, скорость возросла неимоверно и они пока держутся на рынке... А какой размер у Вас таблиц и используются ли они в дополнение с Ole DB Provider? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 20:52 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Sergey ChМое добавление к данному топику, что использование данных вещей очень сильно замедляет работу с данными FoxPro... При более 200-300 тысяч записей наступают очень большие "тормоза", отсюда практический вывод - отказаться от этой RI либо использовть MS SQL Server 2005, что собственно компания-производитель FoxPro и рекомендует... Здесь проблема не в RI (это частный случай), а в логике обработки триггеров в FoxPro вообще. Дело в том, что FoxPro обрабатывает по одной записи за раз. Т.е. даже в групповых командах вроде APPEND FROM добавление пойдет по одной записи с тем, чтобы обеспечить корректную обаботку триггера на каждую запись . Отсюда и тормоза при массовых обработках . Если массовая обработка - это довольно частая задача, то надо предусмотреть специальные флаги в триггерах, чтобы отключать на это время триггера и делать проверку программно, после всех добавлений. Если тормоза пошли при "штатной" работе (модификация одного документа), то это уже вопрос оптимизации самих триггеров. Не должен он тормозить при таких незначительных масштабах. "Что-то в консерватории надо подправить" (С) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 21:40 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Sergey Ch А если неофициально, то у меня в профиле вообще мало MS SQL Server - это говорит только о том, что по данной технологии очень много литературы, где можно найти ответы на все вопросы... Чем собственно и пользуюсь... Ну в общем-то комментарий (без перехода на личности как-раз) был как-раз не вам, а вы все-таки продемонстрировали переход на личности (или, если хотите, в очередной раз безадресно поделились личным опытом). Sergey Ch При более 200-300 тысяч записей наступают очень большие "тормоза", отсюда практический вывод - отказаться от этой RI либо использовть MS SQL Server 2005 Чисто практический интерес: а на каком количестве пользователей, на каких операциях, на каком качественном составе этих 200-300 тысяч записей, на каком железе такое наблюдается ? Без намеков, но бывает случаи, когда в триггеры и RI навешивают достаточное количество кода, которого там не должно быть в принципе (ибо логика что и где проверять все-таки должна быть разумной: контроль целостности данных отдельно, бизнес-логика отдельно). Sergey Ch опытом одной большой ERP Не откроете секрет, какой именно ? В небезызвестной 1с(dbf-версия), например, выбран не фоксовый контейнер базы и организован не самый плохой подход для работы со словарем базы (хотя реализован однозначно не лучший способ с самими данными и журналами измеений). При этом работа со ссылочной целостностью в общем-то мало кого напрягает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 13:32 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Sergey ChА какой размер у Вас таблиц и используются ли они в дополнение с Ole DB Provider? Таблиц в базе на сегодня ~250, размер основных рабочих таблиц (не справочников) 150-850 тыс.записей Массированная вставка используется время от времени подготовленным человеком - администратором подсистемы и время работы определяется по большей части доп.проверками и перекодированием. Основная работа программы организована с нормальным :) количеством вставок/удалений и полным отсутствием тормозов на этой почве. В модальных формах при вводе/редактировании отсутствуют дублирующие доп.проверки - перехватывается ошибка соответствующего триггера - всё мгновенно. Никаких провайдеров, всё нативно :). Но повторюсь, по отношению ко мне - это "из прошлой жизни". Наблюдаю со стороны уж скоро 2 года, всё работает и развивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 22:02 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
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, но они потом отказались и вернули всю логику на клиента... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 23:01 |
|
||
|
DataBase
|
|||
|---|---|---|---|
|
#18+
Cyv Никаких провайдеров, всё нативно :). Но повторюсь, по отношению ко мне - это "из прошлой жизни". Наблюдаю со стороны уж скоро 2 года, всё работает и развивается. Надеюсь, что у них все и дальше будет хорошо :) Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 23:03 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1590233]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 431ms |

| 0 / 0 |
