Создать запись базы данных с видимой историей? - PullRequest
0 голосов
/ 01 сентября 2018

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

bug_id    Summmary    Details        Assigned Dev
------    --------    -------        ------------
1         Bug 1       Broken         Scott
2         Bug 2       Add Feature    Dave
3         Bug 3       Design Bug     Jimmy
4         Bug 4       Broken         Carly

Я хотел бы иметь другую таблицу, в которой будут храниться обновления, введенные разработчиками, но все еще "связанные" с идентификатором. Допустим, в таблице bug_update есть 5 обновлений.

update_details    bug_id_for_update
--------------    -----------------
Jan 1st update    2
Jan 2nd update    2
Jan 2nd update    1
Jan 2nd update    4
Jan 4th update    2

Я хочу, чтобы 3 из них "принадлежали" ко второму сообщению об ошибке. Есть ли «лучший» способ сделать это? Я использую phpMyAdmin, если это что-то меняет.

Спасибо за любую помощь в настройке, это очень ценится.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Запишите триггер при обновлении таблицы bug_summary для создания и записи в таблицу bug_update каждый раз, когда интересующие вас столбцы обновляются. Вы можете записать старое значение и новое значение интересующего вас поля. Обязательно запишите первичный ключ таблицы bug_summary как поле в таблице bug_update, чтобы можно было легко выполнить объединение для просмотра обновлений в одна запись. Вы также можете создать поле для записи метки времени, чтобы точно знать, когда произошло обновление.

http://www.mysqltutorial.org/create-the-first-trigger-in-mysql.aspx Эта статья демонстрирует концепцию

0 голосов
/ 01 сентября 2018

Похоже, что bug_update строки имеют отношение "многие к одному" с bug_summary строками. Каждый элемент сводки может иметь ноль или более элементов обновления. Это точно подходит для вашего случая использования.

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

Вы можете использовать автоинкрементный идентификатор обновления. Или вы можете использовать DEFAULT CURRENT TIMESTAMP для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...