Как XML + XSD в SQL?

Подскажите, как можно автоматизировать процесс создания таблицы базы данных, согласно существующей схеме XSD?
Пример: Есть xml с данными ЕГРЮЛ или ЕГРИП, и есть XSD схема для этих файлов. Как можно автоматически сгенерировать названия полей в таблице для наполнения данными?
  • Вопрос задан
  • 351 просмотр
Решения вопроса 1
@WaterSmith
Android-разработчик. Java, Kotlin
Это зависит от того, какие имена полей вам нужны. Вы можете например распарсить XSD, на основании его данных сгенерировать текст запроса для создания таблиц, и выполнить его. А можете тупо создать таблицу с именами полей FIELD_1 ... FIELD_N. Всё зависит от вашей задачи.

Давайте начнем с того, что вы объясните, зачем вам запихивать данные в одну таблицу.
В вашей таблице, будет столько записей, сколько видов деятельности у одной компании, для каждого вида деятельности одна запись. Например:
godtable: 
compani_id, company_name, ... (any more fields of company) ... , 
id_activity, name_activity, is_base, grnip, record_date

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

Для того чтобы получить нормализованную базу, вам нужны например три таблицы:
1. Юрлица (companies): id. name, и т.д.
2. Виды деятельности юрлиц (compani_activity): id_company, id_activity, is_base, grnip, record_date
3. Реестр видов деятельности: (activities): id, name


Если у вас была идея, хранить все виды деятельности в одной записи но в разных колонках, то это была идея не правильная, у вас тогда у разных записей будет разное количество колонок, и рано или поздно вы наткнетесь на то, что вам не хватит колонок.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы