Мне нужно для обмена данными с различными программами в текстовом формате, что вы предлагаете? - PullRequest
2 голосов
/ 24 января 2010

Наша программа должна импортировать / экспортировать данные из / в разные программы, каждая из которых имеет определенные независимые свойства. Большинство из этих компаний отправили бы 2 текстовых файла: первый, состоящий из содержимого данных, и второй, содержащий описания. Предположим этот пример:

файл содержимого: TheArtofDeceptionKevin11.53

Description file: offset[0..16] -> Book name 
                  offset[17..21] -> Author
                  offset[22..27] -> Price

Чтобы справиться с этой проблемой, я использовал файл конфигурации на основе Jason для каждой компании, а для извлечения данных я бы анализировал jason, извлекал информацию о смещениях и импортировал ... Но недавно я думал об использовании базы данных для этого, скажем, определение таблицы с первичным ключом как (company, docType, fieldname) и столбцами как (начало, конец)

Что вы думаете об этом последнем проекте? Я бы хотел, чтобы кто-то уже прошел через это и помог мне найти хорошее решение.

Спасибо,

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

Ответы [ 2 ]

1 голос
/ 24 января 2010

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

1 голос
/ 24 января 2010

Это зависит;) (Я полагаю, вы имеете в виду JSON , а не Джейсон.

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

Однако, если данные регулярно структурированы, вы можете использовать базу данных, такую ​​как формат обмена, но нет точно определенного формата, для которого вы не можете просто скопировать файл базы данных MySql. Вы можете передавать файлы с разделителями табуляции или CSV-файлы, но содержащиеся в них данные не так хорошо определены, как XML - например, не ASCII символы, как они представлены? Также этот файл не будет содержать информацию первичного ключа. Если вы можете договориться со всеми участниками о точном формате, тогда этот метод передачи будет использовать файлы меньшего размера, чем XML, и будет быстрее обрабатываться, но, опять же, это имеет значение, если у вас очень большой объем данных.

Таким образом, я бы придерживался формата XML / json, если скорость передачи или обработки не оказывает заметного влияния на процесс.

...