Таблицы истории аудита Laravel - за и против истории SQL или пакета аудита? - PullRequest
0 голосов
/ 12 ноября 2018

Моя проблема в том, что я не уверен, что делать.Я собираюсь создать похожую структуру базы данных, подобную этой ( source ):

enter image description here

Однако во время исследования я обнаружил, что существуют такие пакеты аудита, как это .Поэтому мне интересно, каковы плюсы и минусы?

Мои мысли:

  • История SQL:

    За:

    • Конкретный источник таблиц с определенными атрибутами
    • легко читаемая каждая строка в средствах просмотра БД

    Минусы:

    • труднее реализовать
  • как Laravel Auditing

    Pro:

    • Easyреализовать через Trait
    • Легко получить данные истории в Eloquent

    Минусы:

    • единую таблицу аудита, содержащую все проверяемые изменениявсех таблиц
    • трудно читаемых в средствах просмотра БД

Вы пошли бы трудным путем или просто взяли пакет?

1 Ответ

0 голосов
/ 22 ноября 2018

Я бы использовал пакет, в основном из-за простоты использования и настройки.

Что касается минусов, которые вы упомянули:

  • одна таблица аудита, содержащая все проверяемые изменения всех таблиц
  • трудно читать в средствах просмотра БД

Во-первых, я не могу сказать, что это плохо, поскольку позволяет легко связать пользователя со всеми изменениями, внесенными в разные модели.

В противном случае, если бы у вас была таблица аудита для каждой модели (order_audits, costumer_audits, ...), вам пришлось бы использовать операторы JOIN для простых вещей, таких как получение общего количества изменений, внесенных пользователем в системе. Например,

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

Одно из преимуществ (в СУБД, которые его поддерживают) заключается в том, что вы можете использовать операторы WHERE в столбцах типа JSON для применения фильтрации, и, учитывая, что тип JSON существует уже некоторое время, я уверен, что есть средства просмотра базы данных, которые может отображать данные правильно, вместо строки JSON.

...