|
20.06.2007, 14:58 | #1 |
Участник
|
Их надо знать в лицо
Тут сделал джобик, выводящий все таблицы Axapt-ы, конфигурационный ключ, количество записей в таблице и количество перекрёстных ссылок. Запустил на стандарте с демо базой. Потом сделал фильтр. Ссылок > 100, записей не меньше 1. И модули Логиcтика, Торговля, Главная книга + пустые. Получилось 115 таблиц. Интересно можно ли их считать основными таблицами. Кто как считает?
Последний раз редактировалось miklenew; 26.06.2007 в 10:56. |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
20.06.2007, 15:25 | #2 |
Участник
|
классно.
не все эти таблицы входят в набор основных. например km* сильно сторонняя таблица purchPrintCopies тоже сильно вспомогательная. Но для начала очень правильный подход. Выделить основные и сделать для них схему при помощи Visual MorphXlorer или Reverse Enegeneering в Visio... |
|
20.06.2007, 16:29 | #3 |
Moderator
|
"Записей не меньше 1" - это мне понятно. А "ссылок > 100" - это что за критерий, извиняюсь, "основнистости"?
И ссылки какого рода имеются в виду? Любое упоминание о данной таблице в "Перекрестных ссылках" в любом контексте (поле, релэйшн, метод и т.д.)? Ну и сам джобик, наверное, было б полезно выложить сюда тоже. Спасибо. |
|
21.06.2007, 08:11 | #4 |
Участник
|
Вот job.
X++: static void Job10(Args _args) { FileNameSave fileNameSave = "C:\\1.txt"; AsciiIo File; container oneRecord; UtilElements UtilElements; DictTable dictTable; dictConfigurationKey dictConfigurationKey; LoginProperty loginProperty; ODBCConnection odbcConnection; Statement statement; ResultSet result; SqlSystem sqlSystem; str Query; str countStr; XRefReferences XRefReferences; xRefNames xRefNames; int countRef; ; sqlSystem = new SqlSystem(); loginProperty = sqlSystem.createLoginProperty(); odbcConnection = new odbcConnection(loginproperty); Statement = odbcConnection.createStatement(); file = new AsciiIo(fileNameSave, 'W'); if(file) File.write(""); while select UtilElements group by name, recordType { if (enum2str(UtilElements.recordType)=="Table") { dictTable = new DictTable(tablename2id(UtilElements.Name)); if (!dictTable.isTmp() && dictTable.isSql()) { Query ="Select count(recId) from "+dictTable.name(); Result = statement.executeQuery(Query); try { while ( Result.next() ) { countStr=Result.getString(1); } } catch { countStr = "0"; } xRefNames = xRefNames::find(xRefKind::Table,"",dictTable.name()); select count(RecId)from XRefReferences where XRefReferences.referencePathRecId == xRefNames.xRefPathRecId; countRef = XRefReferences.RecId; oneRecord = connull(); if (dictTable.configurationKeyId()) { dictConfigurationKey = new DictConfigurationKey(dictTable.configurationKeyId()); oneRecord += dictTable.name()+ '; ' + dictTable.label()+'; ' + dictConfigurationKey.name() + '; ' + dictConfigurationKey.label() + '; ' + countStr + '; ' + int2Str(countRef); File.writeExp(oneRecord); } else { oneRecord += dictTable.name()+ '; ' + dictTable.label()+'; ' + '; ' + '; ' + countStr + '; ' + int2Str(countRef); File.writeExp(oneRecord); } } } } } Цитата:
Сообщение от Gustav
"Записей не меньше 1" - это мне понятно. А "ссылок > 100" - это что за критерий, извиняюсь, "основнистости"?
Цитата:
Сообщение от Gustav
И ссылки какого рода имеются в виду? Любое упоминание о данной таблице в "Перекрестных ссылках" в любом контексте (поле, релэйшн, метод и т.д.)?
Сейчас хочу распределить этот список на первичные(т.е. таблицы клиентов, поставщиков), вторичные(Заказы, Закупки,Накладные т.е. те таблицы куда стикаются данные от первичных) и лишние(ошибочно попавшие). Отберу выложу. В любом случае если есть какие-то возражения пишите. |
|
21.06.2007, 09:09 | #5 |
Участник
|
Цитата:
userinfo, exchrate. не вошел весь bank*, bom*, commission*, config* и т.п. в общем, для начала посмотрите в список таблиц в AOT. Цитата:
Сама таблица может не использоваться, но активно используются поля и/или методы этой таблицы |
|
21.06.2007, 09:25 | #6 |
Участник
|
кроме того, могут быть следующие случаи:
1. таблицы могут быть обернуты map'ом, а уже map активно используется 2. таблицы обернуты классом, который используется. А сама таблица напрямую используется редко |
|
21.06.2007, 09:31 | #7 |
Участник
|
Цитата:
Сообщение от mazzy
О!, да, таких дофига и больше.
userinfo, exchrate. не вошел весь bank*, bom*, commission*, config* и т.п. в общем, для начала посмотрите в список таблиц в AOT. bom* - модуль Спецификации commission* - модуль Коммиссионные config* - модуль Номенклатурная аналитика - конфигурация Я специально взял только три модуля (Логиcтика, Торговля, Главная книга) + пустые. Т.к пустые принадлежат всем. И по замыслу наверное должны быть самые основные. Слона надо есть кусками. Цитата:
Сообщение от mazzy
Этого мало.
Сама таблица может не использоваться, но активно используются поля и/или методы этой таблицы |
|