Как анализировать данные, используя PHP, в таблицы MySQL из файлов XML, которые имеют форматы, которые не являются универсальными и могут изменяться?

0

Проблема:

Я собираюсь создать веб-инструмент на PHP, чтобы помочь пользователям получить доступ к информации, разбросанной по коллекции файлов XML, из которой я планирую хранить данные в таблицах в MySQL. Многие примеры, которые я вижу в Интернете, похоже, основаны на импорте данных из группы файлов XML, которые используют одинаковое форматирование. У меня нет такой роскоши.

Как я смогу проанализировать файлы XML, которые имеют следующие факторы?

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

Ожидаемые результаты:

Используя пример, где коллекция XML о группе людей, если вы ищете "карие глаза", вы получите страницы результатов поиска для всех перечисленных с карими глазами. Одна из страниц - "Роберт". Если щелкнуть этот результат, вы перейдете на страницу, где отображается вся информация из файла Robert XML (удобочитаемое форматирование, которое будет обработано позже).

  • 0
    звучит как идеальное время для использования базы данных NoSQL. MongoDB и Redis являются самыми популярными в настоящее время
  • 0
    Когда происходят эти непредвиденные изменения в коллекции, существует ли требование, чтобы инструмент мог обрабатывать новую коллекцию без каких-либо изменений кода? Или ожидается, что вам (или кому-то) нужно будет соответствующим образом изменить инструмент?
Теги:
search
parsing

1 ответ

0

Вы можете создать только самообучающийся парсер, который добавляет новые столбцы в таблицу всякий раз, когда находит новые свойства в XML. в основном, доступны две опции: либо создать модель данных, которая в какой-то момент времени сопоставляет все записи, либо добавить беспорядок в базу данных noSQL, что не обязательно делает беспорядок еще лучше. "один размер подходит всем" (вставка неструктурированных данных в структурированную базу данных) не вариант.

  • 0
    Я думаю, что мы собираемся пойти с парсером, который сначала проверяет, существуют ли таблицы для категории XML, а затем, что каждое поле существует как столбец (и соответственно добавляет / создает). Если говорить с теми, кто управляет нашими XML, то 99,99% изменений - это просто сложение, а не вычитание или перестановка полей. Мы считаем, что эти крайние случаи легко смягчить после быстрого мозгового штурма. Спасибо за пищу для мозга!
  • 0
    @ Микро, что парсер может нуждаться в периодических корректировках при обработке нового пакета файлов. например. определение типа / версии входного документа, добавление сопоставлений для измененных имен полей и т. д. разработка с резервной копией предложенной фактической базы данных. это все о поиске наименьшего общего знаменателя, с точки зрения структуры данных. может потребоваться наличие таблиц с информацией о версиях формата файла и сопоставлениях столбцов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню