powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программная работа со схемой данных
25 сообщений из 57, страница 2 из 3
Программная работа со схемой данных
    #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
25 сообщений из 57, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программная работа со схемой данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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