Динамическая обработка столбцов SQL в таблице во время загрузки данных

#java #sql #oracle

#java #sql #Oracle

Вопрос:

Мне нужно создать таблицу в Oracle / SQL, и данные будут загружаться через приложение Java / C # через CSV с 50 полями (сопоставленными столбцам таблицы). Как спроектировать таблицу / БД с учетом приведенных ниже ограничений при импорте данных из CSV

  • В CSV могут быть добавлены новые поля к существующим 50 полям.

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

ПРИМЕР:

В CSV есть поля S_ID, S_NAME, SUBJECT, MARK_VALUE

  ------ --------- ------------- ------------ 
| S_ID | S_NAME  | SUBJECT     | MARK_VALUE |
 ------ --------- ------------- ------------ 
|    1 | Stud    | SUB_1       |         50 |
|    2 | Stud    | SUB_2       |         60 |
|    3 | Stud    | SUB_3       |         70 |
 ------ --------- ------------- ------------ 
  

Что, если в CSV добавлено новое поле «RANK» (похожие поля), и мне нужно сохранить все новые поля в таблице.

Пожалуйста, предложите дизайн БД для этого рассмотрения

Ответ №1:

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