Я пытаюсь создать веб-приложение, в котором пользователи могут загружать файл (в частности, формат MDF ) и просматривать данные в виде различных диаграмм. Файлы могут содержать любое количество сигналов на основе времени (различные числовые типы данных), и пользователи могут называть сигналы дико.
Моя мысль о сохранении данных состоит из 2 шагов:
- Ведение мастер-таблицы в качестве индекса для сохранения такой метаинформации, как имена файлов, кто ее загрузил, когда и т. Д. Записи (строки) добавляются каждый раз, когда новый файл загружен.
- Создайте новую таблицу (я буду называть ее таблицами данных ) для каждого загруженного файла, в пределах таблицы каждый столбец будет представлять собой один сигнал (первый столбец является метками времени) .
В связи с этим возникает проблема, заключающаяся в том, что я не могу предварительно определить Model
для таблиц данных, поскольку число, имя и тип данных полей будут различаться практически для всех загружаемых файлов.
Мне известны некоторые библиотеки, которые помогают создавать динамические модели времени выполнения, но все они устарели, и вопросы о них в SO в основном получают ноль ответов. Поэтому, несмотря на все усилия, чтобы заставить это работать, я даже не уверен, что мой подход - оптимальный способ сделать то, что я хочу сделать.
Я также сталкивался с этим полем модели Postgres Specc, которое может принимать вложенные массивы (что, я думаю, соответствует 2-D спискам сигналов на основе времени). Теоретически я мог бы проанализировать необработанный загруженный файл и создать такой массив и в основном сохранить все данные в одном поле. Не зная предела размера данных, это также может стать кошмаром для последующих запросов, поскольку для создания диаграмм обычно требуется всего несколько столбцов сигналов за раз по сравнению с общим количеством до сотен сигналов.
Итак, мой вопрос:
Есть ли лучший способ организовать хранение данных? И как?
Любое понимание очень ценится!