Лучший способ хранить обновляемые научные данные? - PullRequest
1 голос
/ 30 августа 2011

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

2 примера строки (из тысяч):

FeII 1608.4511 0.521 55.36 -1300 M03 Journal of Physics
FeII 1611.23045 0.0321 55.36 1100 01J AJ

Программа читает это как:

FeII 1608.4511 0.521 55.36 -1300 
FeII 1611.23045 0.0321 55.36 1100 

Эти числа - каждое измерение и большинство (не получаютя начал) имеют связанные ошибки, которые не перечислены в этом файле.Я хотел бы хранить эту информацию в полезной и обновляемой форме.То есть, скажем, первая запись FeII 1608.4511 имеет ошибку плюс / минус 0,002.Подумайте, когда производится новое измерение, и измените его на: FeII 1608.45034 плюс / минус 0.0005.Я хотел бы обновить значение, ошибку и записать некоторую информацию о публикации, из которой она вышла.

Программа, использующая этот файл, является устаревшим кодом, она важна и негибка: ей нужен файлчтобы выглядело как приведенный выше вывод, когда он читается. Мне бы очень хотелось, чтобы был способ обновить входной файл, включив в него такие вещи, как ошибки в значениях и гиперссылки публикации в комментариях.Мне также хотелось бы, чтобы какая-то возможность контроля версий возвращала состояние этого большого файла сегодня;или через 5 месяцев после обновления еще 20 строк новыми значениями.

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

Ответы [ 3 ]

2 голосов
/ 01 сентября 2011

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

На вашем месте я бы начала с хранения базового файла в системе управления версиями.система, а не база данных.При 20 изменениях в 5 месяцев я, вероятно, внесу эти изменения вручную и передам каждую партию изменений.(Я не знаю, что может составить для вас пакет. Может каждый раз вноситься одно изменение.)

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

1 голос
/ 30 августа 2011

База данных звучит разумно, SQL Server Express является бесплатной и широко используемой.

Вы можете прочитать текстовый файл, включая все комментарии, и вывести отредактированные данные в том же формате.Вы можете использовать несколько внешних интерфейсов, включая Access, для быстрой разработки или что-то, что вы создаете сами в VB.Net или даже в Excel, в крайнем случае.

Вам нужно будет рассмотреть структуру таблицы (s) но это не должно быть слишком сложно, и вы можете получить помощь здесь.

0 голосов
/ 30 августа 2011

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

Если вы хотите восстановить состояние линии, вам определенно нужна какая-то база данных. Например, вы можете создать базу данных на Sql Server или Firebird и сохранить в ней строку для каждой строки исторического состояния (с датой создания вне курса); сам ваш файл будет хранилищем текущих значений, и вы сможете восстановить файл с датой и простым извлечением информации из базы данных.

Если вы не можете использовать базу данных, такую ​​как Firebird или SQL Server, вы можете хранить исторические данные в простом текстовом файле, это ваше дело. Просто помните, что вам, как и в комментарии @CatCall, обязательно потребуется способ идентификации каждой строки, чтобы создать связь между строкой в ​​файле и историческими данными, хранящимися в вашем хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...