powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программная работа со схемой данных
57 сообщений из 57, показаны все 3 страниц
Программная работа со схемой данных
    #39268638
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Делаю следующее.
Программно формирую отношения (Relations) между таблицами. Все выполняется хорошо.
Теперь нужно, чтобы эти Relations проявились в схеме данных. Также программно.
Если это требуется в текущей БД, то делаю так
Код: vbnet
1.
2.
3.
4.
5.
6.
  With DoCmd
   .RunCommand acCmdRelationships
   .RunCommand acCmdShowAllRelationships
   .RunCommand acCmdSaveLayout
   .RunCommand acCmdWindowHide
  End With

При этом происходит мгновенное мелькание,
так как окно схемы данных открывается-обновляется-сохраняется-закрывается.

В связи с этим такие вопросы:

1. Есть ли способ программной визуализации новых Relations лучше/правильнее представленного?
Если есть, то какой?
2. Этот способ визуализации новых Relations не подходит,
если работа выполняется в отношении другой, внешней БД, определенной через
Код: vbnet
1.
Set DB = DBEngine.OpenDatabase(<полное имя внешней БД>....)

Как быть в этом случае?
Есть ли возможность программно воздействовать на схему данных во внешней БД?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39268664
Echo,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleПри этом происходит мгновенное мелькание,
может достаточно будет тот код с DoCmd "заключить" в
Код: vbnet
1.
2.
3.
Application.Echo False
...
Application.Echo True


?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39268668
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Echo,,

Да при чем тут это?
Мигание я упомянула для обрисовки общей картины.
Его практически нет.
Суть вопроса в другом.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39268681
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясню.
Суть вопроса - как работать со схемой данных программно без имитации ручных действий .
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39268749
Echo,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleEcho,,

Да при чем тут это?
Мигание я упомянула для обрисовки общей картины.
Его практически нет.
Суть вопроса в другом.таа, "суть вопроса" - понятна
Непонятна "суть ответа" :)

Relationships Window - это "составная часть" Акцесса (как какое-нибудь меню или форма)
Поэтому про п.2 - просто смешно говорить! - Открываете свою "внешнюю БД" в Акцессе и делаете всё тоже, что и НЕ во внешней.

по п.1 - вполне нормальный вариант.
Лучше Акс не предоставляет :)

пс
хуже - есть , но Вам не понравится
... даа и "несработало" на А2010 у меня, видимо класс Relationships Window уже не "OSysRel"
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39268918
Echo,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Echo,... даа и "несработало" на А2010 у меня, видимо класс Relationships Window уже не "OSysRel"
вдруг кто захочет поиграться
нужно в вызове
Код: vbnet
1.
hWndRel = FindWindowEx(hWndMDI, 0&, "OSysRel", "Relationships")


заменить "Relationships" на тайтл формы в своей локализации, или просто vbNullString
Код: vbnet
1.
hWndRel = FindWindowEx(hWndMDI, 0&, "OSysRel", vbNullString)
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39268953
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Echo,,

Спасибо большое. Простите за молчание. Пока другие дела.
Надо подумать, потом отвечу.
Про Лебанса тут https://bytes.com/topic/access/answers/502925-access-relationships-window-proper-layout видела,
но саму штуку пока не смотрела.

Может, это и есть у Лебанса, но вдруг Вы знаете по-другому -
как программно выстраивать элементы в окне схемы?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39268976
Echo,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleМожет, это и есть у Лебанса, но вдруг Вы знаете по-другому -
как программно выстраивать элементы в окне схемы?
Да, в A2KSave-Restore-Modify-RelationshipWindowLayoutver9.mdb,
функция RestoreLayout в модуле формы.

Там, правда, элементы выстраиваются по хранящимся в таблице координатам, но ничего не мешает их "строить" просто по какой-то логике, - от 1 к М

... но всё на ВинАПИ, предупреждаю :)
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39269267
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Echo,Да, в A2KSave-Restore-Modify-RelationshipWindowLayoutver9.mdb,
функция RestoreLayout в модуле формы.

Там, правда, элементы выстраиваются по хранящимся в таблице координатам, но ничего не мешает их "строить" просто по какой-то логике, - от 1 к М

... но всё на ВинАПИ, предупреждаю :)Посмотрела, наконец, хоть и бегло.
Спасибо-спасибо! Очень понравилось.)))
API не пугают, приходилось применять. Тут разобраться можно, думаю.
Каждому прямоугольничку дескриптор окна присваивается и задаются координаты и размеры?

Про основное потом...
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39269593
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Echo,Relationships Window - это "составная часть" Акцесса (как какое-нибудь меню или форма)
Поэтому про п.2 - просто смешно говорить! - Открываете свою "внешнюю БД" в Акцессе и делаете всё тоже, что и НЕ во внешней.
Вот как раз и не хотелось открывать новый Application.
Думала, можно как-то добраться и через DBEngine.OpenDatabase,
тем более, что новые Relations во "внешней БД" таким образом прекрасно создаются:
DBEngine —> Workspaces —> Databases —> Relations.
И картинка схемы БД ведь строится по какому-то где-то хранящемуся описанию,
то есть признак "Отобразить все" где-то проставляется. Вот до него и хотелось добраться программно.)))
Ну, что ж. Нельзя, так нельзя.
Вот так, конечно, все получается
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 Dim A As Access.Application
 Set A = New Access.Application
 With A
  .Echo False
  .Visible = True
  .OpenCurrentDatabase <полное имя БД>
  .DoCmd.RunCommand acCmdRelationships
  .DoCmd.RunCommand acCmdShowAllRelationships
  .DoCmd.RunCommand acCmdSaveLayout
  .DoCmd.RunCommand acCmdWindowHide
  .CloseCurrentDatabase
 End With
 Set A = Nothing

Только обязательно Application.Visible = True, иначе отработает без ошибок, но изменения схемы не сохранит.

Echo,, а почему это "про п.2 - просто смешно говорить!", а не уметь убрать мерцание (как Вы про меня сначала подумали) не смешно?)))

Echo,, еще раз большое спасибо за участие и очень полезную информацию.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39269624
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникли попутно еще некоторые вопросы, относятся к Relations.
Для новой темы, наверное, маловато, и, вообще, чистая теория, задам здесь.

Влияет ли, и если влияет, то как, наличие связей на скорость обработки?

Вот, например, есть основная таблица и ряд справочников,
связанных с основной отношением 1 (справочник - счетчик) : М (осн.табл. - дл.целое).
При этом задавать обеспечение целостности данных смысла нет ни для изменения,
ни для удаления (невозможность удаления из справочника используемого значения
обеспечивается программно в другом месте).
В запросах нужные значения из справочников подтягиваются через JOIN'ы.
И фактически прорисованные в схеме данных связи играют чисто иллюстративную роль.
Но не вредят ли, не тормозят ли где-нибудь? Или, наоборот, ускоряют?

Или вот. Основная таблица и ряд детализирующих таблиц.
Тут уже отношения 1 (осн.табл. - счетчик) : М (детал.табл. - дл.целое).
И каскадное удаление связанных записей.
Но каскадное обновление смысла, очевидно, не имеет. Однако, по ошибке или по инерции задано.
Влияет ли наличие этого ненужного каскадного обновления на скорость обработки?
Нужно ли его вычистить или все равно?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39269750
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleВозникли попутно еще некоторые вопросы, относятся к Relations.
Для новой темы, наверное, маловато, и, вообще, чистая теория, задам здесь.

Влияет ли, и если влияет, то как, наличие связей на скорость обработки?

Вот, например, есть основная таблица и ряд справочников,
связанных с основной отношением 1 (справочник - счетчик) : М (осн.табл. - дл.целое).
При этом задавать обеспечение целостности данных смысла нет ни для изменения,
ни для удаления (невозможность удаления из справочника используемого значения
обеспечивается программно в другом месте).
В запросах нужные значения из справочников подтягиваются через JOIN'ы.
И фактически прорисованные в схеме данных связи играют чисто иллюстративную роль.
Но не вредят ли, не тормозят ли где-нибудь? Или, наоборот, ускоряют?

Или вот. Основная таблица и ряд детализирующих таблиц.
Тут уже отношения 1 (осн.табл. - счетчик) : М (детал.табл. - дл.целое).
И каскадное удаление связанных записей.
Но каскадное обновление смысла, очевидно, не имеет. Однако, по ошибке или по инерции задано.
Влияет ли наличие этого ненужного каскадного обновления на скорость обработки?
Нужно ли его вычистить или все равно?
Никогда не создаю схему данных.
Почему?
Отвечаю:
1 Под ногами сразу же начинает мыкаться такое понятие как каскадное удаление и прочаяя внутренняя мишура Accessa, что очень томозит ядро.
2 Связи только на уровне запросов и то программных, не сохраненных.
3 Чтобы показать схему данных заказчику (если он конечно понимает) делаю в Visio
С уважением.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39269787
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,

Спасибо. Интересно.
Тоже вот постепенно возникают сомнения в необходимости прорисовывания связей.
Если все в программе аккуратно отслеживать, то и без них все получается.
Но действительно ли они скорее вредны?
Запросы тоже предпочитаю формировать программно, хоть и считается,
что сохраненные как-то там оптимизируются.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39269830
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleROI,

Спасибо. Интересно.
Тоже вот постепенно возникают сомнения в необходимости прорисовывания связей.
Если все в программе аккуратно отслеживать, то и без них все получается.
Но действительно ли они скорее вредны?
Запросы тоже предпочитаю формировать программно, хоть и считается,
что сохраненные как-то там оптимизируются.
Да действительно они вредны.
Это есть у Гетца.
Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ).
Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей).
В общем гадость редкостная (тормоза и глюки редкостные)
С уважением.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39269844
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI__MichelleROI,

Спасибо. Интересно.
Тоже вот постепенно возникают сомнения в необходимости прорисовывания связей.
Если все в программе аккуратно отслеживать, то и без них все получается.
Но действительно ли они скорее вредны?
Запросы тоже предпочитаю формировать программно, хоть и считается,
что сохраненные как-то там оптимизируются.
Да действительно они вредны.
Это есть у Гетца.
Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ).
Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей).
В общем гадость редкостная (тормоза и глюки редкостные)
С уважением.
В настройках базы отключаю это все.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39269867
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI__MichelleROI,

Спасибо. Интересно.
Тоже вот постепенно возникают сомнения в необходимости прорисовывания связей.
Если все в программе аккуратно отслеживать, то и без них все получается.
Но действительно ли они скорее вредны?
Запросы тоже предпочитаю формировать программно, хоть и считается,
что сохраненные как-то там оптимизируются.
Да действительно они вредны.
Это есть у Гетца.
Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ).
Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей).
В общем гадость редкостная (тормоза и глюки редкостные)
С уважением.
Работаю на Access 2010.
Все устраивает (нарадоваться не могу).
Одна только цветовая гамма чего стоит (как вспомню 2003 и XP вырви глаз из 16 цветов)
Ну, а распределение контролов по сетке как на WEB странице и которые сами масштабируются.
Ну, а формы навигации (не надо панель меню отдельно создавать )
Много хорошего могу сказать (добротный инструмент)
С уважением.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270076
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даа... Пора покупать девочке sql-сервер. Как быстро летит время...
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270117
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну-да, ну-да.
В реляционных базах данных эти самые "реляции" абсолютно бесполезная веcчь.
:)
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270124
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredНу-да, ну-да.
В реляционных базах данных эти самые "реляции" абсолютно бесполезная веcчь.
:)Да вот потому и вопросы возникают, что, по идее, полезная, но некоторые моменты неясны мне.
Не могли бы Вы высказать свое мнение вот по этому 19380114 ?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270132
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROIДа действительно они вредны.
Это есть у Гетца.
Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ).
Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей).
В общем гадость редкостная (тормоза и глюки редкостные)

- мое мнение абсолютно диаметрально противоположное...
- не знаю чё там у Гетца по этому поводу (и хотелось бы поконкретнее, а не просто, что это есть)...
- я с этим столкнулся конкретно на практике и на приличных объемах...
- Был у меня хозяйтсвенный магазин среднего размера, работал как часы года три, за это время несколько раз менялись хозяева (перепродажа бизнеса) и вот наконец пришло руководство с иконой 1С - решили перейти на этого бренда, нашли контору, которая согласилась из моей программы перенести все остатки и продажи за текущий год (6 месяцев) и типа плавно за ! 300 000 р (с учетом всех работ) перейти на 1С...
и вот пробил час - открыли магазин, побибикали пол часа в 1С и поняли. что это тормоза, что результат продаж
только в конце смены (у меня всё онлайн) и что моя трех летка летает в онлайне как пуля по сравнению с их полугодовалой черепахой...
- в общем, внедрятели уехали ни с чем, а бабло то уже съедено, через месяц хозяева в суд, разрабы опять
на неделю в магазин на доработку, потом мне хозяева звонят и говорят типа подъедь, есть вопросы...
- короче в договоре с разрабами был пункт, что внедряемое ПО должно быть не хуже по возможностям
и производительности чем существующее (моё)
- а вопрос в том, что их по работает медленно, а моё теперь стало работать еще медленнее чем их, и типа,
что делать теперь, бабки заплатили, а стало хуже в общем и целом...
- оказалось всё просто - их программер взял и тупо почикал основные связи по веткам прихода и продажи,
а индексированные ключи-счетчики сделал просто счетчиками... и оказалось что все запросы на базе нескольких
таблиц превратились тупо в телеги с несмазанными колесами... часа два провозился, пока всё восстановил и
опять всё полетело и зашуршало...
- чтобы все это стало очевидно, нужно юзать базу по сетке с объемом записей в таблицах от 100 000 шт. и выше...
+ при нормальной схеме с полными связями гарантировано не будет мусора (хотите вы этого или нет)

Ну а дальше каждый решает сам...
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270140
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

По сети работает.
Есть таблица с 200 000 записей (самая большая по числу записей, но не по количеству полей).
Связи все есть. И индексы.

Меня интересуют детали отношений. В частности
Влияет ли наличие этого ненужного (и которое никогда не произойдет, потому что PK - счетчик) каскадного обновления на скорость обработки?
Необходимо ли его вычистить или все равно?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270141
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagROIДа действительно они вредны.
Это есть у Гетца.
Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ).
Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей).
В общем гадость редкостная (тормоза и глюки редкостные)
- не знаю чё там у Гетца по этому поводу (и хотелось бы поконкретнее, а не просто, что это есть)...Да. Присоединяюсь.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270142
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

Там восклицательный знак, а выглядит как миллион триста тысяч.)))
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270146
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не замечал особой разницы в скорости работы баз со связями и без, но часто замечал в базах без связей нарушения целостности данных, в результате которых скорость отодвигалась на 10-й план - просто программа работала не так, как было нужно. Если бы были связи, то все вылезло бы в виде ошибок гораздо раньше и компания не теряла бы денег. В моих разработках я всегда прорисовываю все связи очень тщательно, с каскадными удалениями и т.п. Это зачастую выручает, т.к. все баги отловить невозможно и ингода после нескольких лет эксплуатации срабатывает связь, генерируя ошибку, которой быть не должно. Выясняется, что это был такой баг, который не видели годами. Проблема в программе при этом не нарушила базу.

Никогда в серьезных проектах не использую аксовскую схему данных не только для просмотра (очень неудобная), но и для создания связей. Всегда генерирую SQL скрипты для создания/изменения базы в CAD типа PowerDesigner - ERWin/BPWin. Схемы в там читаются очень хорошо, а скрипты очень удобно накатывать на бэкэнд в разделенных базах - клиенту достаточно выгнать пользователей и запустить скрипт, который все сделает без потери данных. Маленькая хитрость - DAO не поддерживает DDL с каскадными связями, только ADO. в PowerDesigner, например, пришлось подкручивать конфигурационные файлы, чтобы начал генерировать каскадные связи для акса.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270147
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мое мнение насчет обязательности связей категорично, наверное, потому что я сначала получил хороший опыт разработки SQL баз, а Акс был уже потом.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270152
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin....Маленькая хитрость - DAO не поддерживает DDL с каскадными связями, только ADO.
в PowerDesigner, например, пришлось подкручивать конфигурационные файлы, чтобы начал генерировать каскадные связи для акса.А так
Код: vbnet
1.
2.
3.
Dim Rel As DAO.Relation
Set Rel = DB.CreateRelation(....................)
Rel.Attributes = dbRelationDeleteCascade  + dbRelationUpdateCascade

?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270154
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,

Это все равно, что программировать на ассемблере. Я скрипты для создания баз в большинстве своем даже не пишу руками, мне их генерирует CAD. Я говорил именно про скрипты с командами DDL, на VBA можно сделать практически все, но это будет код, который сложно поддерживать и очень сложно в нем разбираться.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270205
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,

Всё, что я говорил не относится к базам данных из 3-10 таблиц, на рисунке один из моих самых сложных проектов (магазин + услуги + ресторан) и в схеме данных только те таблицы, которые включены в схему данных (две трети)...
Довольно шустро всё летает и даже на самых простеньких старых компах, а если убрать все веревки, то придется дописывать приложение примерно на в два раза больше, чтоб спастись от мусора и полной каши и таким шустрым оно точно уже не будет...

Единственное с чем согласен (с ROI) только в другом разрезе - сложность любого агрегата прямо пропорциональна его хрупкости,
сейчас всем клиентам выкручиваю руки, чтобы на всех компах (если не ноутбуки) стояли бесперебойники (если в БД только таблицы,
то вероятность разрушения связей, индексов и в общем БД гораздо меньше). Это как карбюраторная машина и инжекторная - после
ядерного взрыва первая завелась и поехала, а у второй в результате ЭМИ сгорела вся электроника...

Но я предпочитаю ездить на инжекторе... :-)
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270272
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROIДа действительно они вредны.
Это есть у Гетца.ROI,
Вы не могли бы дать ссылку или хотя бы цитату привести?
А то я поискала в "Сборник рецептов для профессионалов", правда, на английском ("Acces Cookbook")
и в "Разработка настольных приложений в Access".
Но такого не нашла.
Подскажите, куда смотреть, пожалуйста.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270532
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

Извиняюсь, что не в тему. Хотел узнать, как же вы разбираетесь в базе с такими короткими именами таблиц и колонок? Или это наследие Dbase с 8-ми символьным ограничением?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270603
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinИзвиняюсь, что не в тему. Хотел узнать, как же вы разбираетесь в базе с такими короткими именами таблиц и колонок?

так код писать проще и короче, а есть ещё такие вещи в таблицах как подписи и коментарии
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270899
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle... Влияет ли, и если влияет, то как, наличие связей на скорость обработки?...
Влияет.
Как?
Однозначного ответа в такой постановке вопроса не может быть априори.

Рассмотрим, например, лишь один момент.
При добавлении связи в таблицу с FK добавляется индекс, если он не был добавлен до этого вручную.
Как наличие индекса влияет на "скорость обработки"?
По-разному на разных операциях.

__Michelle...Вот, например, есть основная таблица и ряд справочников,
связанных с основной отношением 1 (справочник - счетчик) : М (осн.табл. - дл.целое).
При этом задавать обеспечение целостности данных смысла нет ... для удаления (невозможность удаления из справочника используемого значения обеспечивается программно в другом месте)...
Неужели вы всерьез рассчитываете, что ваше vba-решение будет работать надежнее
проверенного десятилетиями механизма Jet?

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

Рассмотрим, например, лишь один момент.
При добавлении связи в таблицу с FK добавляется индекс, если он не был добавлен до этого вручную.
Как наличие индекса влияет на "скорость обработки"?
По-разному на разных операциях.С влиянием существующих индексов более-менее ясно.
Но вот сейчас провела эксперимент.
Убрала связь, убрала индекс, соответствовавший FK, снова создала ту же связь.
Индекс - не появился.
Что бы это значило???

Predeclared__Michelle...Вот, например, есть основная таблица и ряд справочников,
связанных с основной отношением 1 (справочник - счетчик) : М (осн.табл. - дл.целое).
При этом задавать обеспечение целостности данных смысла нет ... для удаления (невозможность удаления из справочника используемого значения обеспечивается программно в другом месте)...
Неужели вы всерьез рассчитываете, что ваше vba-решение будет работать надежнее
проверенного десятилетиями механизма Jet?Нет. Я, видимо, плохо объяснила. Попробую на примере.
Допустим, есть табличка-справочник фамилий с двумя полями.
И есть большая таблица с множеством полей, в том числе и поле с ключом из справочника фамилий.
То есть, в справочнике PK, в большой таблице FK (1:M).
Но разве можно ставить в зависимость от удаления записи из справочника удаление записи из большой таблицы?
Поэтому и не выставляется флаг каскадного удаления.
При этом в специальной форме работы со справочником дозволяется удаление только "свободных" значений.
Вот и вопрос. Надо ли прорисовывать такую связь? Чего больше, пользы или вреда?

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

Я для себя решил, что НУЖНО !

Если было:
Иванов - герой
Петров - дуралей
А после удаления фамилий из справочника стало:
- герой
- дуралей
то очевидно, что это уже ни о чем (мусор)

Я поступаю так (способ первый):
- если в справочнике подчиненных нет - молча удаляю
- если подчиненные есть - предупреждаю и переспрашиваю
Способ второй:
- у главной записи добавляем признак (живая/удаленная)
- по кнопке удалить тупо меняем признак и больше эту запись и всю ветку в низ не показываем нигде

Какой способ применять обычно решаю сам в зависимости от важности сносимой информации,
но приоритет способу 1
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270946
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предвкушая вопрос - Зачем способ 2, привожу пример:
- в магазинах, например, приличная текучка с продавцами...
- чек закрепляется за продавцом (из справочника естессссно)
- если тупо снести каскадно продавца, то умрут и его чеки с проданным товаром...
- по этому у продавца тупо ставим галочку уволен и всё, его история осталась,
а выбрать его в программе для продажи уже нельзя...
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270947
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle...
Но вот сейчас провела эксперимент.
Убрала связь, убрала индекс, соответствовавший FK, снова создала ту же связь.
Индекс - не появился.
Что бы это значило???
...
Я ожидал этот вопрос.
Как проверяли наличие индекса?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270949
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

А я решила, что из подобных справочников удаляются только неиспользуемые значения.
В форме работы со справочником для каждого значения показано, где, в каком журнале
применено и в каком количестве. Заодно и частотность видна.
Плюс есть возможность редактирования.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270954
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared,

Проверяла не программно.
Глазами. В конструкторе таблицы вызвала окно индексов.
А где закопано?)))
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270958
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,

Так надежней:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
    Dim i As Integer
    With CurrentDb
        With .TableDefs("Any")
            For i = 0 To .Indexes.Count - 1
                Debug.Print .Indexes(i).Name
            Next i
        End With
    End With
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270960
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleА я решила, что из подобных справочников удаляются только неиспользуемые значения.

практика показывает, что постановка задачи немного другая - юзеры хотят видеть только используемые значения, причем только те, которые актуальны на сей момент, вот и приходится давать им право принятия решения на снос
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270962
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared__Michelle,

Так надежней:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
    Dim i As Integer
    With CurrentDb
        With .TableDefs("Any")
            For i = 0 To .Indexes.Count - 1
                Debug.Print .Indexes(i).Name
            Next i
        End With
    End With

Применила.
Вылез только один индекс, основной, по счетчику.
А по полю, которое FK, индекса нету.
Тот же результат, что и глазами.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270963
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle...
Тот же результат, что и глазами.
Пример прицепите.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270964
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag__MichelleА я решила, что из подобных справочников удаляются только неиспользуемые значения.

практика показывает, что постановка задачи немного другая - юзеры хотят видеть только используемые значения, причем только те, которые актуальны на сей момент, вот и приходится давать им право принятия решения на сносУ меня другое мнение. Менять не собираюсь.
Решение об удалении принимает и удаляет, само собой, пользователь.
Но в заданных условиях, исключающих возникновение "мусора", как Вы выражаетесь.)))
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270965
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle... Попробую на примере.
Допустим, есть табличка-справочник фамилий с двумя полями.
И есть большая таблица с множеством полей, в том числе и поле с ключом из справочника фамилий.
То есть, в справочнике PK, в большой таблице FK (1:M).
Но разве можно ставить в зависимость от удаления записи из справочника удаление записи из большой таблицы?
Поэтому и не выставляется флаг каскадного удаления.
...
В этом примере речь о каскадном удалении.
Здесь оно, конечно, ни к чему.

По первому вашему примере речь об обеспечение целостности данных.
Я из цитаты вашего текста намеряно "вырезал" троеточием кусок о каскадном удалении,
что бы не мешать все в кучу.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270970
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleУ меня другое мнение. Менять не собираюсь.
Решение об удалении принимает и удаляет, само собой, пользователь.
Но в заданных условиях, исключающих возникновение "мусора", как Вы выражаетесь.)))

vmagЯ для себя решил, что НУЖНО !

Если было:
Иванов - герой
Петров - дуралей
А после удаления фамилий из справочника стало:
- герой
- дуралей
то очевидно, что это уже ни о чем (мусор)
Я поступаю так (способ первый):
- если в справочнике подчиненных нет - молча удаляю
- если подчиненные есть - предупреждаю и переспрашиваю

Вообще то наши мнения совпадают...
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270971
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared__Michelle...
Тот же результат, что и глазами.
Пример прицепите.Уже не надо.))) Эксперимент продолжился.
После задания обеспечения целостности (при этом ни каскадного обновления, ни каскадного удаления не задается)
индекс "глазами" не появляется, но программно выскакивает.
После снятия галки индекс исчез отовсюду.

Можно ли как-то сделать, чтобы окно индексов показывало правду?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270973
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagВообще то наши мнения совпадают...Вот и хорошо!)))
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270974
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle... Можно ли как-то сделать, чтобы окно индексов показывало правду?
Сделать свое окно.
У Билли индусов другие приоритеты.
:)
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270975
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared......В этом примере речь о каскадном удалении.
Здесь оно, конечно, ни к чему.

По первому вашему примере речь об обеспечение целостности данных.
Я из цитаты вашего текста намеряно "вырезал" троеточием кусок о каскадном удалении,
что бы не мешать все в кучу.Этот пример был, чтобы спросить, нужны ли такие "пустые" связи в схеме?
Как иллюстрация, наверное, да.
Но приносят ли они какие-то обременения? Наверное, нет, или совсем незначительные?
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270977
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleВот и хорошо!)))

я кажется догадываюсь в чем проблема - вы совершенствуете свое ПО и иногда возникает необходимость в новых
полях, таблицах и связях, а мотаться по клиентам - каблучков не напасёшься... могу дать совет:
используйте вот это https://www.teamviewer.com/ru/
или аналоги... за работу (из дому) берите оплату на кошелек или карту... при не очень интенсивном использовании
это бесплатно, при существенном можно и лицензию купить... я так уже несколько лет поддерживаю штаны
в нескольких конторах ни разу там не быв физически
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270978
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle... Но приносят ли они какие-то обременения? Наверное, нет, или совсем незначительные?
Не знаю.
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270981
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

Учту. Спасибо.)))
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270983
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared__Michelle... Но приносят ли они какие-то обременения? Наверное, нет, или совсем незначительные?
Не знаю.Что-то ROI молчит про тайные цитаты из Гетца...
Есть ли они...
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270988
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleУчту. Спасибо.)))

Если я угадал, то признаюсь, в своё время тоже мучился проблемой поднятия автоматом версий ПО при помощи всяких патчей рабочей БД и заменой управляющих программ и т.д., а потом прикинул, что есть два очень важных момента:
1. Это может стать дополнительной приличной статьей дохода.
2. Лучше, когда это делаешь лично и не думаешь о том, что у кого-то кривые руки (не то скачал, не то запустил,
не там запустил).

И тут, признаюсь поперло...
- к одним лично езжу (отдельная такса: приезд + работа) в основном клиенты с которыми хорошие отношения и общие интересы (ипподром, охота, рыбалка...)
- у кого есть интернет - по удаленке (созвонились, соединились - 10 минут на добавление таблицы, замену упр. модулей и проверку - с головой)
- кто в караганде присылают в ночь базу в архиве и упр. программу, утром получают их обратно новые и вставляют на место с заменой...

Просто ум и знания ничего не стоят - если за них никто не платит (се ля ви)
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39270989
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag...И тут, признаюсь поперло...)))
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39271448
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag__MichelleНо разве можно ставить в зависимость от удаления записи из справочника удаление записи из большой таблицы?

Я для себя решил, что НУЖНО !

Если было:
Иванов - герой
Петров - дуралей
А после удаления фамилий из справочника стало:
- герой
- дуралей
то очевидно, что это уже ни о чем (мусор)

Я поступаю так (способ первый):
- если в справочнике подчиненных нет - молча удаляю
- если подчиненные есть - предупреждаю и переспрашиваю
Способ второй:
- у главной записи добавляем признак (живая/удаленная)
- по кнопке удалить тупо меняем признак и больше эту запись и всю ветку в низ не показываем нигде


Включение ссылочной целостности не включает автоматом каскадное удаление. При включенной целостности база просто не даст удалить запись из справочника при наличии ссылок на нее в основной таблице, ничего при этом не удалив.

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

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

Я вообще стараюсь ничего не удалять, если это хоть как-то может пригодиться
...
Рейтинг: 0 / 0
Программная работа со схемой данных
    #39271533
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichellePredeclaredпропущено...

Не знаю.Что-то ROI молчит про тайные цитаты из Гетца...
Есть ли они...
Вот я попал- (роюсь в цитатах)
С уважением.
...
Рейтинг: 0 / 0
57 сообщений из 57, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программная работа со схемой данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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