powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нужна помощь Collections
20 сообщений из 95, страница 4 из 4
Нужна помощь Collections
    #39340748
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже, вовсе не глупы вопрос.
авторА если у пункта нет подпункта?

В случае дерева, сами понимаете, просто заканчивается...
В случае другой организации, все равно ничего страшного.

Кстати, дерево то хорошо. Но нужно достаточно доводов в его пользу. Все же, работать с ним, получать данные, сложнее.
Это не совсем реляционность.
Тем не менее, надо, стоит, рассмотреть все варианты.

Кстати - любую функциональность. 2 профи, построят совершенно по разному (или могут ) и не докажешь у кого лучше)))
Поэтому вариантов построения достаточно сложной системы, всегда больше одного
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39340753
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rikitikiЕсли не ясно, приведу пример. Там все простоесли не затруднит, сбросьте простенький примерчик[/quot]

Прямо здесь накидаю.
1 поле ид, второе парент, 3- имя
1.1. Дерево
2.1.Ветка1
3.1.Ветка2
4.2.Листок1Ветки1
5.3.Листок1Ветки2
.....
Надеюсь ясно?
и так до бесконечности.
Для работы с деревом, применяют рекурсию.
Проблемы с выборками.
Но все равно, иногда это эффективнее.
В общем надо тщательно считать)
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39340758
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще про буковки.
А посмотрите, как там с графами?
Может из применить? Попробуйте и в эту сторону подумать
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39340808
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот это сообщение, на сколько не подходит?
19853571
Просто в голове некоторая каша)))
Половина забыл, половина и не помнил)))
Но ТС очевидно, очень хорошо в теме.
Если оно подходит, то там допиливать не сложно.

Там главное, 2 уровня. Если по определению, больше уровней невозможно, то это одно.
Если уровней может быть любое количество, то все хуже))) (Дерево)

Попробуйте ответить на это.
И если в общем то подходит, то сразу включайте критику, и ищите что не подходит для вас. Что не сходится.
Ошибки проектирования - дорого обходятся в дальнейшем)
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39340853
rikitiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо asdor и Vik_Fix за Ваше время и советы
Хочу сначала опробовать 2 варианта предложенных Вами (вариант с таблицей подпункты и вариант с деревом)
авторПример "дерева" поняла потом отпишусь
вечером командировка и до компа доберусь только в воскресенье вечером
на вскидку:
вариант с таблицей подпункты - не могу пока представить визуализацию данных (таблица правил)
вариант с деревом - визуализация ole объект Treeview
Выборка - вариант с таблицей подпункты - будет намного проще

В общем пока не попробую ничего сказать не смогу.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39341365
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rikitiki,
Мысль пришла.
Vik_Fix как то упомянул, что все эти буковки, просто искусственные создания.
Так может о них лучше забыть.
Как результат - мо должны получить данные в виде приложенных тхт.
Т.е. просто набор фраз.
Делаем таблицу с этими фразами. Не повторяющимися.
id,Name,Фраза

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

Просто ТС рассказывает логику, исходя из того как это организовано сейчас.
А надо от нее отвлечься. И описать ее, забыв о буквах и нд. Просто именно все возможные зависимости.
Лучше взять пару абстрактных пунктов (файлов ворд), и начать спускаться вниз, постепенно добавляя, забытые связи.
И для тестов, ограничиться минимальным набором. Главное, все правила охватить.
А может и сам ворд не нужен...
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342336
Vik_Fix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
В общем, на выходных под кружечку пивка меня осенило)))
Схема из таблиц "Пункты" и "Под пункты" - не совсем хороша, уж больно мудрено придется логику выстраивать. Но тут же подумав, а чем подпункт отличается от пункта? (да в общем-то ничем), исходя из этого нарисовалась немного другая структура БД.

"Таблица пункты и подпункты"
ID_dDoc - идентификатор дополнительной записи документа (возможно и не нужен)
ID_DOC - идентификатор документа (из таблицы НД)
ID_TYPE - идентификатор типа записи (0 - Пункт, 1 - Подпункт)
Num_P - номер пункта из документа ("1, 2, 3" и т.д.)
Num_PP - номер подпункта из документа ("1, 2, 3" или "а, б, в" и т.д.), у пунктов в данном поле 0 или пусто
TEXT_dDoc - текст пункта или подпункта

"Таблица типов записи"
ID_TYPE
NAME_TYPE

Дальше строим составные индексы, к примеру так: ID_DOC + NUM_P + NUM_PP.
В интерфейсе программы при заполнении полей NUM_P и NUM_PP, необходимо сделать проверку на вводимые данные.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342378
rikitiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет
Вчера поздно добрался
3 дня в голове рисовал схемы
до чего дошел
8 таблиц
"Таблица категории"
Id_Category - идентификатор категории N(2)
Name_Cat - название категории C(2)
Denotation - описание категории M(4)

"Таблица топливо"
Id_Fuel - идентификатор топлива N(2)
Name_Fuel - название топлива C(20)

"Таблица обозначение НД"
Id_Sign - идентификатор обозначения N(2)
Name_Sign - обозначение НД C(20)

"Таблица НД"
Id_Regulation - идентификатор НД N(4)
Id_Sign - идентификатор обозначения НД
Number - номер НД C(20)
Denotation - название НД M(4)
Date_Begin - дата введение в действие НД D(8)
Date_End - дата окончания действие НД D(8)

"Таблица сфера применения"
Id_Scope - идентификатор сферы применения N(5)
Id_Regulation
Id_Category
Id_Fuel
Denotation - сфера применения НД M(4)

"Таблица состояния"
Id_Condition - идентификатор состояния N(2)
Name_Condition - название состояния C(20)

"Таблица пунктов"
Id_PunktND - идентификатор пункта НД N(3)
Denotation - текст пункта НД M(4)

ну и в завершении
"Таблица правил"
Id_Rules - идентификатор правил
Id_PunktND
Id_Scope или Id_Regulation (еще думаю)
Id_Condition

Логика такая
есть "таблица категорий" - она постоянная
есть "таблица топливо" - заполняем по максимуму (здесь пока проблемы с добавлением новой записи)
при вводе новой записи в "таблицу НД" сразу заполняем "таблицу сфера применения" - поскольку она не меняется у НД, пока он действует
Ну и в конце описываем "таблицу правил"
Все вроде просто, но сегодня первый день возле компа, сейчас попробую реализовать интерфейс
Пока вижу только проблему с добавлением нового топлива
Выслушаю Ваши замечания.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342432
Vik_Fix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rikitikiесть "таблица топливо" - заполняем по максимуму (здесь пока проблемы с добавлением новой записи)

А в чем именно? Опишите в чем может быть проблема при добавлении новой записи?

"Таблица обозначение НД" - что в этой таблице будет?
"Таблица пунктов" - тот же самый вопрос.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342443
rikitiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vik_Fixrikitikiесть "таблица топливо" - заполняем по максимуму (здесь пока проблемы с добавлением новой записи)

А в чем именно? Опишите в чем может быть проблема при добавлении новой записи?Предположим заполнили все записи в таблицах, появляется новое топливо "напалм", нужно перебирать все НД куда его добавлять (еще не продумал)

Vik_Fix"Таблица обозначение НД" - что в этой таблице будет?поле Name_Sign - (ГОСТ, Правило, ДСТУ, ТУ У, ...)

Vik_Fix"Таблица пунктов" - тот же самый вопрос.Просто набор фраз - например (вимоги пунктів 5.1.2; 5.1.4; 5.2.1 R13 щодо конструкції гальмівних систем і системи сигналізації КТЗ, а також вимоги пунктів 1.4.2; 2.1.1; 2.3 додатка 4)
как писал
asdorМысль пришла.
Vik_Fix как то упомянул, что все эти буковки, просто искусственные создания.
Так может о них лучше забыть.
Как результат - мо должны получить данные в виде приложенных тхт.
Т.е. просто набор фраз.
Делаем таблицу с этими фразами. Не повторяющимися.
id,Name,Фраза
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342501
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rikitiki

У вас будет огромное число таблиц-справочников и вы быстро запутаетесь в обозначениях. У вас объемная работа.
Уже сейчас неясно применение таблиц типа "Таблица правил".

Вам надо бы привести в порядок нормативную документацию. Что-то типа этого:
http://base.garant.ru/179141/
http://mt27.ru/perechen-pravil-eek-oon/

Я бы посоветовал пронумеровать эти нормативы: n01... и o01... и использовать эти обозначения в соответствующих им названиях справочников.
Структуру справочников можно взять везде одинаковой, примерно так: idtab, names, values, notes. Это позволит вам в дальнейшем для редактирования справочников использовать единую форму.
Различные условия, и не только при добавлении, обычно пишутся в кодах. Вам придется писать свои что-то типа триггеров, т.к. родные триггеры Фокс громоздки.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342514
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rikitiki,
авторПредположим заполнили все записи в таблицах, появляется новое топливо "напалм", нужно перебирать все НД куда его добавлять (еще не продумал)

Забей временно.
Когда остальное решишь, с этим будет не сложно.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342523
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12,
sg12Различные условия, и не только при добавлении, обычно пишутся в кодах. Вам придется писать свои что-то типа триггеров, т.к. родные триггеры Фокс громоздки.

Ну вот, тут на протяжении 4 страниц боремся, что бы не в коде менять. А тут нате вам - открытие.
Не учите плохому.
Правила здесь - это не алгоритмы, а связи.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342544
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdorsg12,
sg12Различные условия, и не только при добавлении, обычно пишутся в кодах. Вам придется писать свои что-то типа триггеров, т.к. родные триггеры Фокс громоздки.

Ну вот, тут на протяжении 4 страниц боремся, что бы не в коде менять. А тут нате вам - открытие.
Не учите плохому.
Правила здесь - это не алгоритмы, а связи.

К сожалению, база данных Фокс не очень располагает к этому, запутаетесь уже при числе таблиц больше десяти, и придется переделывать.
Коды условий удобнее располагать в формах, но при их большом количестве это удобство исчезает, т.к. они обычно изменчивы.
Можно для условий создать глобальный объект типа CUSTOM, а в формах или БД оставить только строки вызова.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342804
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12К сожалению, база данных Фокс не очень располагает к этому, запутаетесь уже при числе таблиц больше десяти, и придется переделывать.

А вы упорны в своих заблуждениях батенька))))
Ну ОК. Пусть БД MS SQL будет. Что то поменяется?
Запутаться легко и в одной таблице.
А другие и с сотнями не путаются.

sg12Коды условий удобнее располагать в формах, но при их большом количестве это удобство исчезает, т.к. они обычно изменчивы.
Вообще то формы, это визуальное представление для пользователя. Конечно, легко запихнуть туда логику. Начинающие часто так делают. Но советовать это как подход...
sg12Можно для условий создать глобальный объект типа CUSTOM, а в формах или БД оставить только строки вызова.
И зачем?...

Вообще в этом топике, пытаются создать разумную схему хранения.
Убежден, после ее создания, видно будет, как и что программировать. Что в формах, а что в других объектах.

Хранить различные алгоритмы, в одном глобальном объекте... Чем хуже просто набор процедур?
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39342845
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdor

VFP9 это не досовский Fox и не SQL Server.
Если у вас что-то по-другому, то пожалуйста.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39343065
Vik_Fix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ого, да у Вас тут уже "бойня" )))) пойду по порядку.
rikitiki "Таблица НД"
Id_Regulation - идентификатор НД N(4)
Id_Sign - идентификатор обозначения НД
Number - номер НД C(20)
Denotation - название НД M(4)
Date_Begin - дата введение в действие НД D(8)
Date_End - дата окончания действие НД D(8)

"Таблица пунктов"
Id_PunktND - идентификатор пункта НД N(3)
Denotation - текст пункта НД M(4)


Не вижу связи между этими таблицами, хотя "пункты" это не неотъемлемая часть НД.

rikitikiПросто набор фраз - например (вимоги пунктів 5.1.2; 5.1.4; 5.2.1 R13 щодо конструкції гальмівних систем і системи сигналізації КТЗ, а також вимоги пунктів 1.4.2; 2.1.1; 2.3 додатка 4)
как писал

Извиняюсь, это я немного "протупил", работаю еще над своей программой и у меня в голове сработало "Пункты" - это "населенные пункты" ))))

sg12У вас будет огромное число таблиц-справочников и вы быстро запутаетесь в обозначениях. У вас объемная работа.
Уже сейчас неясно применение таблиц типа "Таблица правил".
Я бы не сказал, что огромное количество таблиц справочников, возьмите к примеру КЛАДР или ФИАС - это уже 3 справочных таблицы (а их часто используют в своих программах), вот про обозначения не понял.
Таблица правил - по логике вещей это вспомогательная таблица для создания связи между пунктами НД (требованиями) и сферой их применения. Не спорю на текущий момент у автора не все гладко, но он стремиться к лучшему.

sg12Я бы посоветовал пронумеровать эти нормативы: n01... и o01... и использовать эти обозначения в соответствующих им названиях справочников.

Не знаю насколько Вы осилили прочтение данного топика, но прослеживается не понимание сути.
Нормативные документы - это куча ГОСТов, Правил, ДСТУ, ТУ У и прочего в которых прописаны всевозможные требования к различным объектам сертификации (фары, ремни, колеса и т.д.).
Так же транспортные средства (далее ТС) подразделяются:
на категории N, L, M, O (подробней я описывал ранее);

по состоянию (новое, б/у, переоборудованное)

по топливу на котором работают (бензин, газ, электричество и т.д.)

Так вот, автору необходимо зная выше перечисленные 3 составляющие, отобразить НД и их пункты относящиеся именно к такому сочетанию составляющих, бррр... как-то мудрено получилось.
Отсюда вопрос: как нумерация нормативов поможет?

sg12Различные условия, и не только при добавлении, обычно пишутся в кодах. Вам придется писать свои что-то типа триггеров, т.к. родные триггеры Фокс громоздки.
Про триггеры вообще не понял, в моем понимании триггер - это всего лишь событие вызываемое при определенном действии, а код который будет исполнятся при этом можно написать какой угодно.

Ой, дальше я даже продолжать не буду, а то от темы уходим.

rikitiki - на неделе попробую изобразить свое виденье в виде готовых таблиц, чтоб говорить более предметно. А то на словах уже сам начинаю путаться.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39346877
rikitiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, Asdor и Vik_Fix
дошел до точки кипения
Можно сбросить Вам на мыло то, что у меня получилось (поскольку размер 1Мб)?
Не могу понять как добавлять и сохранять.
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39347088
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rikitiki,
kv # abz4.ru
Но по мере сил)
...
Рейтинг: 0 / 0
Нужна помощь Collections
    #39347156
Rikitiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asdor,
Ок, завтра сброшу.
...
Рейтинг: 0 / 0
20 сообщений из 95, страница 4 из 4
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нужна помощь Collections
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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