|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
MrShin....Маленькая хитрость - DAO не поддерживает DDL с каскадными связями, только ADO. в PowerDesigner, например, пришлось подкручивать конфигурационные файлы, чтобы начал генерировать каскадные связи для акса.А так Код: vbnet 1. 2. 3.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 21:05 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__Michelle, Это все равно, что программировать на ассемблере. Я скрипты для создания баз в большинстве своем даже не пишу руками, мне их генерирует CAD. Я говорил именно про скрипты с командами DDL, на VBA можно сделать практически все, но это будет код, который сложно поддерживать и очень сложно в нем разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 21:19 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__Michelle, Всё, что я говорил не относится к базам данных из 3-10 таблиц, на рисунке один из моих самых сложных проектов (магазин + услуги + ресторан) и в схеме данных только те таблицы, которые включены в схему данных (две трети)... Довольно шустро всё летает и даже на самых простеньких старых компах, а если убрать все веревки, то придется дописывать приложение примерно на в два раза больше, чтоб спастись от мусора и полной каши и таким шустрым оно точно уже не будет... Единственное с чем согласен (с ROI) только в другом разрезе - сложность любого агрегата прямо пропорциональна его хрупкости, сейчас всем клиентам выкручиваю руки, чтобы на всех компах (если не ноутбуки) стояли бесперебойники (если в БД только таблицы, то вероятность разрушения связей, индексов и в общем БД гораздо меньше). Это как карбюраторная машина и инжекторная - после ядерного взрыва первая завелась и поехала, а у второй в результате ЭМИ сгорела вся электроника... Но я предпочитаю ездить на инжекторе... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 23:23 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
ROIДа действительно они вредны. Это есть у Гетца.ROI, Вы не могли бы дать ссылку или хотя бы цитату привести? А то я поискала в "Сборник рецептов для профессионалов", правда, на английском ("Acces Cookbook") и в "Разработка настольных приложений в Access". Но такого не нашла. Подскажите, куда смотреть, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 08:43 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
vmag, Извиняюсь, что не в тему. Хотел узнать, как же вы разбираетесь в базе с такими короткими именами таблиц и колонок? Или это наследие Dbase с 8-ми символьным ограничением? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 13:05 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
MrShinИзвиняюсь, что не в тему. Хотел узнать, как же вы разбираетесь в базе с такими короткими именами таблиц и колонок? так код писать проще и короче, а есть ещё такие вещи в таблицах как подписи и коментарии ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 14:27 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__Michelle... Влияет ли, и если влияет, то как, наличие связей на скорость обработки?... Влияет. Как? Однозначного ответа в такой постановке вопроса не может быть априори. Рассмотрим, например, лишь один момент. При добавлении связи в таблицу с FK добавляется индекс, если он не был добавлен до этого вручную. Как наличие индекса влияет на "скорость обработки"? По-разному на разных операциях. __Michelle...Вот, например, есть основная таблица и ряд справочников, связанных с основной отношением 1 (справочник - счетчик) : М (осн.табл. - дл.целое). При этом задавать обеспечение целостности данных смысла нет ... для удаления (невозможность удаления из справочника используемого значения обеспечивается программно в другом месте)... Неужели вы всерьез рассчитываете, что ваше vba-решение будет работать надежнее проверенного десятилетиями механизма Jet? __MichelleИли вот. Основная таблица и ряд детализирующих таблиц... ...Но каскадное обновление смысла, очевидно, не имеет. Однако, по ошибке или по инерции задано. Влияет ли наличие этого ненужного каскадного обновления на скорость обработки? Нужно ли его вычистить или все равно? Не проверял, но вычистить нужно! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 21:19 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Predeclared__Michelle... Влияет ли, и если влияет, то как, наличие связей на скорость обработки?... Влияет. Как? Однозначного ответа в такой постановке вопроса не может быть априори. Рассмотрим, например, лишь один момент. При добавлении связи в таблицу с FK добавляется индекс, если он не был добавлен до этого вручную. Как наличие индекса влияет на "скорость обработки"? По-разному на разных операциях.С влиянием существующих индексов более-менее ясно. Но вот сейчас провела эксперимент. Убрала связь, убрала индекс, соответствовавший FK, снова создала ту же связь. Индекс - не появился. Что бы это значило??? Predeclared__Michelle...Вот, например, есть основная таблица и ряд справочников, связанных с основной отношением 1 (справочник - счетчик) : М (осн.табл. - дл.целое). При этом задавать обеспечение целостности данных смысла нет ... для удаления (невозможность удаления из справочника используемого значения обеспечивается программно в другом месте)... Неужели вы всерьез рассчитываете, что ваше vba-решение будет работать надежнее проверенного десятилетиями механизма Jet?Нет. Я, видимо, плохо объяснила. Попробую на примере. Допустим, есть табличка-справочник фамилий с двумя полями. И есть большая таблица с множеством полей, в том числе и поле с ключом из справочника фамилий. То есть, в справочнике PK, в большой таблице FK (1:M). Но разве можно ставить в зависимость от удаления записи из справочника удаление записи из большой таблицы? Поэтому и не выставляется флаг каскадного удаления. При этом в специальной форме работы со справочником дозволяется удаление только "свободных" значений. Вот и вопрос. Надо ли прорисовывать такую связь? Чего больше, пользы или вреда? Predeclared__MichelleИли вот. Основная таблица и ряд детализирующих таблиц... ...Но каскадное обновление смысла, очевидно, не имеет. Однако, по ошибке или по инерции задано. Влияет ли наличие этого ненужного каскадного обновления на скорость обработки? Нужно ли его вычистить или все равно? Не проверял, но вычистить нужно! :)Спасибо. Тоже так думаю.))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 22:05 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__MichelleНо разве можно ставить в зависимость от удаления записи из справочника удаление записи из большой таблицы? Я для себя решил, что НУЖНО ! Если было: Иванов - герой Петров - дуралей А после удаления фамилий из справочника стало: - герой - дуралей то очевидно, что это уже ни о чем (мусор) Я поступаю так (способ первый): - если в справочнике подчиненных нет - молча удаляю - если подчиненные есть - предупреждаю и переспрашиваю Способ второй: - у главной записи добавляем признак (живая/удаленная) - по кнопке удалить тупо меняем признак и больше эту запись и всю ветку в низ не показываем нигде Какой способ применять обычно решаю сам в зависимости от важности сносимой информации, но приоритет способу 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 22:26 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
предвкушая вопрос - Зачем способ 2, привожу пример: - в магазинах, например, приличная текучка с продавцами... - чек закрепляется за продавцом (из справочника естессссно) - если тупо снести каскадно продавца, то умрут и его чеки с проданным товаром... - по этому у продавца тупо ставим галочку уволен и всё, его история осталась, а выбрать его в программе для продажи уже нельзя... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 22:35 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__Michelle... Но вот сейчас провела эксперимент. Убрала связь, убрала индекс, соответствовавший FK, снова создала ту же связь. Индекс - не появился. Что бы это значило??? ... Я ожидал этот вопрос. Как проверяли наличие индекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 22:37 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
vmag, А я решила, что из подобных справочников удаляются только неиспользуемые значения. В форме работы со справочником для каждого значения показано, где, в каком журнале применено и в каком количестве. Заодно и частотность видна. Плюс есть возможность редактирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 22:41 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Predeclared, Проверяла не программно. Глазами. В конструкторе таблицы вызвала окно индексов. А где закопано?))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 22:43 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__Michelle, Так надежней: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 22:47 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__MichelleА я решила, что из подобных справочников удаляются только неиспользуемые значения. практика показывает, что постановка задачи немного другая - юзеры хотят видеть только используемые значения, причем только те, которые актуальны на сей момент, вот и приходится давать им право принятия решения на снос ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 22:49 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Predeclared__Michelle, Так надежней: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Применила. Вылез только один индекс, основной, по счетчику. А по полю, которое FK, индекса нету. Тот же результат, что и глазами. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:00 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__Michelle... Тот же результат, что и глазами. Пример прицепите. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:04 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
vmag__MichelleА я решила, что из подобных справочников удаляются только неиспользуемые значения. практика показывает, что постановка задачи немного другая - юзеры хотят видеть только используемые значения, причем только те, которые актуальны на сей момент, вот и приходится давать им право принятия решения на сносУ меня другое мнение. Менять не собираюсь. Решение об удалении принимает и удаляет, само собой, пользователь. Но в заданных условиях, исключающих возникновение "мусора", как Вы выражаетесь.))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:04 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__Michelle... Попробую на примере. Допустим, есть табличка-справочник фамилий с двумя полями. И есть большая таблица с множеством полей, в том числе и поле с ключом из справочника фамилий. То есть, в справочнике PK, в большой таблице FK (1:M). Но разве можно ставить в зависимость от удаления записи из справочника удаление записи из большой таблицы? Поэтому и не выставляется флаг каскадного удаления. ... В этом примере речь о каскадном удалении. Здесь оно, конечно, ни к чему. По первому вашему примере речь об обеспечение целостности данных. Я из цитаты вашего текста намеряно "вырезал" троеточием кусок о каскадном удалении, что бы не мешать все в кучу. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:10 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__MichelleУ меня другое мнение. Менять не собираюсь. Решение об удалении принимает и удаляет, само собой, пользователь. Но в заданных условиях, исключающих возникновение "мусора", как Вы выражаетесь.))) vmagЯ для себя решил, что НУЖНО ! Если было: Иванов - герой Петров - дуралей А после удаления фамилий из справочника стало: - герой - дуралей то очевидно, что это уже ни о чем (мусор) Я поступаю так (способ первый): - если в справочнике подчиненных нет - молча удаляю - если подчиненные есть - предупреждаю и переспрашиваю Вообще то наши мнения совпадают... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:32 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Predeclared__Michelle... Тот же результат, что и глазами. Пример прицепите.Уже не надо.))) Эксперимент продолжился. После задания обеспечения целостности (при этом ни каскадного обновления, ни каскадного удаления не задается) индекс "глазами" не появляется, но программно выскакивает. После снятия галки индекс исчез отовсюду. Можно ли как-то сделать, чтобы окно индексов показывало правду? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:32 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
vmagВообще то наши мнения совпадают...Вот и хорошо!))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:33 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__Michelle... Можно ли как-то сделать, чтобы окно индексов показывало правду? Сделать свое окно. У Билли индусов другие приоритеты. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:39 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Predeclared......В этом примере речь о каскадном удалении. Здесь оно, конечно, ни к чему. По первому вашему примере речь об обеспечение целостности данных. Я из цитаты вашего текста намеряно "вырезал" троеточием кусок о каскадном удалении, что бы не мешать все в кучу.Этот пример был, чтобы спросить, нужны ли такие "пустые" связи в схеме? Как иллюстрация, наверное, да. Но приносят ли они какие-то обременения? Наверное, нет, или совсем незначительные? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:42 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__MichelleВот и хорошо!))) я кажется догадываюсь в чем проблема - вы совершенствуете свое ПО и иногда возникает необходимость в новых полях, таблицах и связях, а мотаться по клиентам - каблучков не напасёшься... могу дать совет: используйте вот это https://www.teamviewer.com/ru/ или аналоги... за работу (из дому) берите оплату на кошелек или карту... при не очень интенсивном использовании это бесплатно, при существенном можно и лицензию купить... я так уже несколько лет поддерживаю штаны в нескольких конторах ни разу там не быв физически ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 23:49 |
|
|
start [/forum/topic.php?fid=45&msg=39270272&tid=1613376]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 347ms |
total: | 530ms |
0 / 0 |