Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   MSTS - Подвижной состав (http://www.trainsim.ru/forum/forumdisplay.php?f=18)
-   -   База данных подвижного состава (http://www.trainsim.ru/forum/showthread.php?t=10676)

Zabor 21.05.2010 14:51

База данных подвижного состава
 
Первая бетка локальной копии готова, [ссылка удалена], там же информация о синхронизации.

Тут обсуждаем все, что касается БД, баги, сетевое зеркало, оптимизацию полей и шкурки и т.д.

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

[B]Уважаемые пользователи и фанаты МСТС, для того чтобы база стала полноценной, требуется Ваше участие![/B]

* - интерфейс оптимизирован под разрешение 1024Х768, в базе представлены два разных варианта размещения данных (в поиске и редактировании), соответственно отписываемся по шрифтам, полям и какой вариант лучше на разных мониторах.

[B]Отдельное спасибо камрадам BOBANRyde, Толяныч, Скороходов Илья за первичные данные, которые уже внесены в БД![/B]

BOBANRyde 21.05.2010 14:59

Игорь, сразу говорю, что страница с обсуждениями не найдена. И с поиском я разобраться не могу.

Zabor 21.05.2010 15:03

Естественно сразу я не мог добавить, сначала тема, потом форум выдает линк, потом добавляю =)), исправлено/добавлено.

art-trans 22.05.2010 00:01

По ЧС4, ЧС4з, ЧС6, ЧС7, ЧС8 - могу в течении недели свои архивы попробовать вбить в базу и предоставить, если есть такая необходимость. Ибо разные версии локомотивов по разному называются и в разных папках находятся. В пример ЧС8-013/075/076, которые у train-driver'а зовутся msts_chs8-0XX, а на zdsim'е - zdsLoco_chs8-0XX. Вдобавок к этому выдуманные ЧС8 хотелось бы в комментарии выделить, чтобы пользователи были в курсе дела.
Хорошее начинание.

p.s.: по ЧС8 детальные данные [URL="http://zdsim.kiev.ua/katalogue/chs8.html"]ТУТ[/URL], на днях дополню несколькими новыми восьмёрками.

ВIGMAN 22.05.2010 00:23

Мой 2007 офис не открывает некий файл [B]Base_ps.mdb[/B]

Zabor 22.05.2010 00:31

Артем, там в "справке" описан метод прямой вставки в таблицу, главное только поля не перепутать =))

[B]ВIGMAN[/B], у офисов есть совместимость "вниз" потому обязан открывать, может у тебя компонент, какой не установлен, например Microsoft Office Access или совместимость с предыдущими форматами файлов :confused:

[QUOTE]Microsoft Office Access 2007 обеспечивает широкий набор средств, способствующий быстрому отслеживанию, созданию отчетов и предоставлению общего доступа к сведениям в управляемой среде.
...
Если используется Microsoft Office Access 2003, Access 2002 или Access 2000, переход на Access 2007 не представляет трудностей. Access 2007 поддерживает форматы MDB-файлов Access 2002, Access 2003 и Access 2000, так что в большинстве случаев необходимо только установить Access 2007 и открыть базы данных Access 2002, Access 2003 или Access 2000. Эти базы данных можно использовать так же, как используются базы данных Access 2007.[/QUOTE]

[URL="http://office.microsoft.com/ru-ru/access/HA102091151049.aspx"]Ссылка[/URL]

add

Только одна просьба после изменений или при открытии не позволяйте офисам выше 2003 менять формат файла, закидываемого обратно, открыть не смогу =)).

Толяныч 22.05.2010 03:27

Игорь, собирать базу по пассам буду еще около недели, ибо единиц туева хуча, у меня уже мозги кипят :crazy: .

Zabor 22.05.2010 03:33

[B]Толяныч[/B], не горит же, главное качество =))

У тебя база открылась нормально?

Толяныч 22.05.2010 04:27

Открылась нормально, у меня офис 2003 стоит. 2007 не айс, имхо.

Zabor 22.05.2010 04:39

У меня тоже 2003 :drinks:, но формат файла 2000 для совместимости с офисом ХР, он еще у многих стоит.

Yolkin 22.05.2010 09:52

У меня Office XP, открылось нормально.
Многие ставят офис без компонентов Access. [B]BIGMAN[/B], попробуй доустановить Access с дистрибутива, должно открыться.

art-trans 22.05.2010 11:33

Игорь, хотелось бы узнать, как быть с локомотивами, у которых eng и wag файлы именуются совершенно по разному - т.е. не под стандарт tsrLoco_chs1-001.eng и tsrLoco_chs1-001wag.wag, а zdsLoco_chs4z-058.eng и coldLoco_chs4z-058.wag (это чисто примеры)?

BOBANRyde 22.05.2010 12:38

[B]art-trans[/B] Я давал двойные ссылки, например ЧС7-001---zdsim.kiev.ua, trainsim.ru. Хотя надо бы и английские имена приписывать, но это тогда каждый локомотив нужно ставить и потом вписывать имя...

Zabor 22.05.2010 14:26

В первом поле (русское имя) совпадения не допускаются, это необходимо для контроля повторений еще на этапе ввода, особенно при вводе списков.

В остальных полях локомотивы различаются по англ. имени (eng) папке и т.д.

Соответственно различие будет в версии, можно дописать версию в русское имя и записи будут корректны, например (вымышленный) первый называется zdsLoco_chs4z-058.eng, а второй tsrLoco_chs4-058.eng, записи будут выглядеть например так:

[CODE]ЧС4з-058 tsrLoco_chs4-058 Engine tsrLoco_chs4-058 Электровоз… ~ UA … …. trainsim.ru
ЧС4з-058 v3.0 zdsLoco_chs4z-058 Engine zdsLoco_chs4z-058 Электровоз… ~ UA … …. zdsim.kiev.ua[/CODE]

При поиске по "ЧС4з-058", "058" будут отбираться оба, это нормально, т.к. это два разных электровоза, размещенных на разных сайтах, просто с одним номером и наверняка в разные периоды жизни.

Wag тут ни при чем о локомотиве достаточно одной записи, даже если пользователь будет искать недостающий файл Wag этого локомотива он найдет сам локомотив и в конечном итоге ему все равно его придется скачать его целиком для восстановления пропавшего куда-то Wag.

Сейчас такие "двойные" локомотивы записаны как

[CODE]ЧС4з-058 пусто пусто Электровоз… ~ пусто … …. trainsim.ru, zdsim.kiev.ua[/CODE]

что конечно неправильно т.к. в дальнейшем будет автоматический переход по ссылке и ссылка вида trainsim.ru, zdsim.kiev.ua некорректна, да и БД не дает нужной информации, однозначно связывающей например файл "zdsLoco_chs4z-058" с zdsim.kiev.ua, а tsrLoco_chs4-058 с trainsim.ru

Почему и задумано сначала сделать локальную копию БД, где все привести в порядок, а уж потом сетевое зеркало т.к. сколько людей, столько и вариантов записи данных =)).

ВIGMAN 23.05.2010 00:52

[B]Zabor
Yolkin[/B]
Спасибо заработало.
Мне нужно было её открыть в самом Excel-е. :)

art-trans 23.05.2010 11:40

Игорь, было бы неплохо ещё добавить столбец для версии дополнения. Вот например есть несколько ЧС8 версии 2.0-2.5, и они же имеются в виде версии 3.0. Хотя тут каша и так получается.

И ещё хотелось бы уточнить, как будет производиться синхронизация данных? Ведь за то время, пока я проделаю работу над всеми ЧС8, например, уже несколько обновлений будет произведено...

DenS 23.05.2010 12:18

А прямые ссылки намечаются же?:)

BOBANRyde 23.05.2010 12:25

[B]DenS[/B] Во первых это очень долгая и нудная работа, во вторых, ссылки постоянно исправляют, попробуй уследи за ними. Хотя вопрос с ссылками еще не решен:)

art-trans 23.05.2010 12:40

Игорь, я загрузил на сервер базу с данными по аквариумам ЧС4 (23.05.2010 12:38 МСК), просьба прояснить отдельные моменты в личке, чтобы по остальным ЧСам ошибок не допустить.

Zabor 23.05.2010 13:35

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

По синхронизации:

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

На данный момент производится выборка данных из двух таблиц по разнице в полях, это измененные записи, подсвечивается поле или поля вызывавшие отбор строки в синхронизируемой таблице, дальше кнопка равенства полей.

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

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

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

Кроме того буду естественно отписываться о внесении данных по нику оператора.

* - ушел проверять синхронизацию…

** - Артем, личку включил.

Толяныч 23.05.2010 14:54

[QUOTE=DenS;179027]А прямые ссылки намечаются же?:)[/QUOTE]
В большинстве своем ссылки будут на раздел download, исключение только для трех главных ресурсов, там ссылки будут почти прямые, в раздел со скачиваемым ПС-ом.

Скороходов Илья 23.05.2010 15:03

[QUOTE=Толяныч;179053]В большинстве своем ссылки будут на раздел download, исключение только для трех главных ресурсов, там ссылки будут почти прямые, в раздел со скачиваемым ПС-ом.[/QUOTE]
А что является тремя главными ресурсами? Trainsim.ru, Zdsim.kiev.ua и ещё какой?

KonSole 23.05.2010 15:15

[QUOTE=Скороходов Илья;179054]А что является тремя главными ресурсами? Trainsim.ru, Zdsim.kiev.ua и ещё какой?[/QUOTE]

railroadsim.net

DenS 23.05.2010 16:15

Просто я считаю для 3 сайтов со своим файлохранилищем можно сделать прямые, как это сделано в Менеджере сценариев. Не очень трудно, по-моему. Если уж что - могу помочь.

З.Ы. Может называть ТОР -три основных ресурса?:D

Zabor 23.05.2010 18:05

Задачка оказалась не так проста =)), дело в том, что мы не можем связать новую и старую таблицы не по одному полю, включая ID т.к. даже ID "ни о чем" - он у каждого добавлявшего записи будет текущий + 1 и т.д. и с главной таблицей не синхронен.

Однако мы можем однозначно определить не модифицированные записи в двух таблицах без участия ID и даты.

По БД от Толяныча это 1395 записей, всего возвращено в базе 1526, однако Толяныч молодец (без шуток) - не только добавил, но и модифицировал старые, что есть правильно так оно и должно работать (правда я к этому еще был не готов =)) ).

По [ID] только из присланной таблицы (там он неповторим и в тоже время не имеет ничего общего с текущей главной таблицей) вычисляем записи без подчиненных против 1395 отобранных на предыдущем этапе без участия ID (инверсия отбора), в результате на выходе 131 запись из присланной таблицы, новые + модифицированные.

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

Следующая задача - научить Access отделять новые от модифицированных, уже проще, но опять же без опоры на поля [дата] и [ID].

Это я к чему - не представляю, как все это можно было сделать скриптами на сайте, когда навороченная и заточенная под эти задачи Access просаживает неслабую систему, получается путь синхронизации данных выбран правильно. :confused:

add

Проверка 1 этапа отбора Ок, Артем 19 записей (модификация/новые), по ЭР9Т-6050, ЭР9Т-731 не модифицировалась дата (правка прямо в таблице [?]), однако записи успешно отобраны как модифицированные, что есть гуд, по самим записям и изменениям чуть позже, сейчас важен механизм синхронизации, чтобы он работал без сбоев.

Толяныч 23.05.2010 18:59

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

Zabor 23.05.2010 22:50

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

ps отвлекался на ремонт, ночью продолжу, к завтрашнему утру или дню получим полноценную синхронизацию в два клика, если каталог будет все еще занят к моменту заброса изменений переименуй загружаемый файл добавив "2" или "3".

art-trans 24.05.2010 16:41

Игорь. Всё верно. ЭР9Т-6050 и ЭР9Т-731 я пробовал в таблице, чтобы определить, насколько автоматизировано. Однако у меня потом Access глюканул маленько, и я как-то забыл про дату. Да созданный тобой редактор очень удобен. Не обещаю, но постараюсь на этой неделе ЧС8 и ЧС4з прогнать полностью.

У меня небольшое предложение - вот Толяныч и ВОВАНрайд вроде тепловозят базу данных, мне же например ЧСы очень приятны - поэтому было бы резонно определить скажем так кураторов серий ПСа, это даст возможность людям, не сведущим в MS Access обращаться напрямую к этим т.н. кураторам с предоставлением данных. Но это так - чисто очередной бред моей очень разбалованной фантазии.

Скороходов Илья 24.05.2010 16:46

[QUOTE=art-trans;179246]У меня небольшое предложение - вот Толяныч и ВОВАНрайд вроде тепловозят базу данных, мне же например ЧСы очень приятны - поэтому было бы резонно определить скажем так кураторов серий ПСа, это даст возможность людям, не сведущим в MS Access обращаться напрямую к этим т.н. кураторам с предоставлением данных.[/QUOTE]
Я ЭП1 забил! :rofl:

BOBANRyde 24.05.2010 17:07

[B]Скороходов Илья[/B] А я ЭП1М:rofl:
[B]art-trans[/B] У меня предложение несколько другое. Сделать не одну базу, а разбить по разделам. То есть одна база по электровозам, другая по тепловозам и тд. По поводу кураторов: в принципе новинки выходят не слишком часто, и достаточно одного камрада, который будет контролировать обновление базы.
[B]Zabor[/B] Игорь, ты скажи еще что сделать надо, если что я помогу чем смогу:)
З.Ы. Ха, у меня поиск заработал, а не просто таблица))

Zabor 24.05.2010 18:38

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

По синхронизации значительно продвинулся, выработалась схема запросов (спасибо Толянычу, данные которого устроили крутую проверку синхронизации :D).

Сейчас синхронизация в четыре этапа:

1. отбор из присланной таблицы записей, которые небыли модифицированы (все поля равны основной БД), на этом этапе получаем ID этих записей [B]по присланной таблице[/B].

2. отбор подчиненным запросом записей из присланной таблицы с несоответствием ID из 1 этапа (инверсия отбора)
Занесение полученных строк в промежуточную таблицу, по сути это таблица, в которую внесены все модифицированные или новые записи из присланной таблицы.

3. отбор из промежуточной таблицы записей, у которых есть соответствие полей [Name] или [Name_eng] или [Folder] основной БД, эти три поля единственные индивидуальные характеристики единицы ПС и если хотя бы одно совпало - запись считается модифицированной, но все равно нужно смотреть глазами, для чего эти записи выводятся в форму:

[URL=http://radikal.ru/F/s58.radikal.ru/i161/1005/bb/ef4227ba7327.png.html][IMG]http://s58.radikal.ru/i161/1005/bb/ef4227ba7327t.jpg[/IMG][/URL] * - совпадение ID с основной БД случайно, просто она еще "не поехала" по ID, на втором добавлении поедет =)).

Тут можно наглядно увидеть, что добавлял оператор и синхронизировать текущую БД отдельно по полям или сразу все, при этом форма автоматически переходит на следующую запись.

Отдельно по полям нужно т.к. могут быть ошибки во введенных данных, тогда можно только дополнить/заменить часть полей в текущей БД.

4. аналогично пункту 2 инверсный отбор из промежуточной таблицы по ID присланной базы записей не вошедших в пункт 3, это новые записи, тоже в форму с попыткой предложить подходящие записи из текущей БД, результат - или замена записи или внесение новой.

Сейчас на этапе реализации пункта 4, как реализую практически мгновенно синхронизирую скопившиеся базы, сори за задержку, ни одна запись из присланных не потеряется.

Сложно? Да сложно, но это плата за многопользовательский асинхронный режим, зато делается один раз, потом просто работает, если кто придумает проще - буду признателен, пока упростить не получается.

ps как доделаю вернусь в тему =)).

Скороходов Илья 24.05.2010 19:09

Беру на себя ЧС2, ЧС2К, ЧС4, ЧС4Т, ЧС6, ЧС7, ЭП1, ВЛ80С, Т и другие модиф.

Толяныч 24.05.2010 19:25

Игорь, сегодня я добью тепловозы и мы все разом займемся электровозами. Где-то к часу по Москве скину обновленный файл.

art-trans 24.05.2010 23:24

ЧС4, ЧС6, ЧС7 - Илья, забудь: эти электровозы я уже приватизировал :D
Плюс ещё электропоезда переменного тока на себя постараюсь взять, благо их немного.

С ЧС6 сразу есть вопрос - имеются два электровоза - 001 и 021, которые ранее хранились на Донате. Сейчас 021-й в виде новой перекраски опубликован на сайте Баниониса, но там вроде не tsrLoco. У меня есть оба электровоза, и я впринципе не против загрузить их на НАРОД.ДИСК под личную ответственность. Прокатит ли такое под БД?

Толяныч 25.05.2010 00:48

[QUOTE=art-trans;179332]я впринципе не против загрузить их на НАРОД.ДИСК под личную ответственность. Прокатит ли такое под БД?[/QUOTE]
Такое потом будем грузить к Игорю на сервак. Файл отправил, тепловозы практически готовы, машки осталось доделать, завтра утром закончу.

Zabor 25.05.2010 00:51

С первой нас камрады синхронизацией! :drinks: База обновлена на 24 число, все записи внесены.

Ахтунг! Если что-то вводили и еще не отправляли файл - не перезаписывайте скачанным (переименуйте)!

Артем, все нормально, только не пиши плиз дату модификации записи в поле [оператор], она и так по системной забивается автоматом и если ты запись редактировал, то меняй оператора на себя, если будем туда так дописывать всех через запятую каждый раз 255 знаков поля не хватит.

По народу и т.п. их же удалят, поставь "-" в поле сайт, пусть висит в базе, что он такой есть, может кто выложит на постоянной основе - заполним.


Через день буду готов выслушать по полям, размерам полей и т.д. сейчас уже в глазах рябит и надо еще запросы подчистить, вывел мне часть данных, модифицированных "назад", что не айс глазами работать, для этого железяка есть =)).

* - в расширенном поиске для правки проглючивало поле [дата] из-за этого поиск мог вешаться, подчистил.


add о еще файлик упал, значит еще сделаем обнову и на 25 =))
add2 Толяныч, спасибо :drinks: [только поспать наконец хотел :D ]

=======================================

Готово! Обновил на 25 число.

Толяныч, всё внес, проверяй =))

В имени ЧМЭ3T-4385 запросу приснились английские буквы, видимо попало в базу еще до наложения условия на значение, перенабрал в исходнике руками - все прошло.

У тебя одна новая запись была, остальные (много) правленые?

ps лучше два дня "покодить", зато потом за 5 минут долететь до синхронизации присланной базы. :D

Толяныч 25.05.2010 01:16

[QUOTE=Zabor;179348]Готово! Обновил на 25 число.
Толяныч, всё внес, проверяй =))[/QUOTE]
Проверил, все есть :drinks:
[QUOTE]У тебя одна новая запись была, остальные (много) правленые?[/QUOTE]
Да, ТЭП75-0001 добавил.

Zabor 25.05.2010 01:22

Ок, я устал и расслабился, доверил запросу - он написал одна запись, пробежал взглядом все поля Ок и автоматом жмякнул "+", только потом задумался, а что это было. :eek:

Хотя набивать все эти данные труд куда более тяжкий, чем их разруливать, тут машина работает, а ввод только руками и глазами.

Толяныч 25.05.2010 01:26

[QUOTE=Zabor;179350]Хотя набивать все эти данные труд куда более тяжкий, чем их разруливать, тут машина работает, а ввод только руками и глазами.[/QUOTE]
Дык... около 4 часов сидел :crazy:

Zabor 25.05.2010 02:07

По той же причине почти двое суток из Access-а не вылезал, :crazy: нельзя потерять ни одной строчки это труд людей, даже если где выползет косяк синхронизации - все присланные архивирую на всякий пожарный.

add

ЧМЭ3T-4385 нашел, буква "Т" английская, потому редактор и спотыкался, когда я на русский исправил просто введя руками в исходнике он посчитал это за новую запись, что абсолютно верно т.к. с имеющимися не сходится.

Запись попала еще до наложения условия на значение в поле [имя русский], значит не зря накладывал, надо будет расширить и углубить =)).

Двойника с английской буквой убил (неполная запись, ID 216), лишний раз проверили синхронизацию - полная присланная запись внеслась как новая, значит, сделали избыток данных, оставив ошибочные и добавив правильные, без потерь, алгоритм Ок.

add

Расширил и углубил, теперь запрещает на уровне форм и таблицы все английские буквы A, B, C, E, H, K, M, O, P, T.

После применения нового условия на значение СУБД долго ругалась на кривые данные, пришлось поправить нашлись с английскими "М":

2ТЭ10M-2486
2ТЭ10М-2602
2ТЭ10M-3423
3ТЭ10MК-1393

Двойников нет, т.к. не было ограничения на "М" исправил, и сам оказался небезгрешен - залепил CcM-14 сразу с тремя английскими буквами, в общем доверяй, но проверяй =)).

* - файл в "копилке" обновлен (25.05 3:32) [+ поле регион в редакторе со списком].
** - чертовски приятно, это уже называется "доводка" :)

=======================================

Подумал о ссылках на файлообменники, как в теме "Поиск ПС", по идее можно писать сайт "-", а ссылку давать на обменник, т.е. "официально" сайта нет, ПС просто числится в БД, но если ссылка живая можно скачать.

И про ответственность, о которой писал Артем, что есть эта ответственность - регулярно продлять сроки хранения файлов и следить за ссылками?

Камрады, у кого какие есть соображения на эту тему?


Текущее время: 07:42. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim