Детализация данных в реляционной базе данных

Tagor спросил: 07 октября 2018 в 11:14 в: mysql

Я создаю rest-api, получаю список инструкций, которые определенный поток на сервере должен выполнить в течение 24 часов, назовем это ежедневным расписанием. Та же самая инструкция выполняется в течение интервала времени:

[
    {
        instructionName: string
        args : [    
            string
            ...         
        ]
        startHh : int
        startMm : int
        endHh : int
        endMm : int
    }   
    ...   
]

Содержание args зависит от instructionName.

Моя проблема в том, что я не уверен, что является лучшим вариантом для хранения списка инструкций в базе данных. На мой взгляд, у меня есть два варианта:

, используя первый подход, у всех есть concat args в одну строку, а затем синтаксический анализ json для объекта DTO и сохранение его. Я должен быть осторожен, чтобы не хранить ИнструкцияNames и аргументы, которые рабочий поток позже не может интерпретировать. Рабочий поток может легко запросить таблицу инструкций и получить текущую инструкцию относительно временного интервала.

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

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

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

Любой вклад приветствуется.

0 ответов