2016-08-04 8 views
1

У меня есть две таблицы, login_inf (информация о входе в систему) и history (история изменений в базе данных, например, какой пользователь редактировал указанной строки) - изображение ниже:SQL-схема, три отношения только между двумя таблицами, могу ли я это сделать?

enter image description here

Я хочу знать, какой пользователь сделал заданное действие, пользователь добавил строку (created_by), пользователь отредактировал строку (modified_by) и какой пользователь удалил строку (removed_by). Правильно ли моя схема?

Отношения:

history.created_by <-> login_inf.login 

history.modified_by <-> login_inf.login 

history.removed_by <-> login_inf.login 

Таким образом, эти три столбца в таблице истории являются один столбец из login_inf, я просто изменил название.

+2

Ваша схема в порядке. –

+0

Я видел эти многочисленные ссылки от 10 до 12 глубины раньше ... вы здесь хорошо. – Twelfth

+0

Благодарим за отзыв :) – mirka

ответ

0

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

+0

Спасибо за ответ :) У меня есть триггеры для генерации строк в моей таблице 'history', и я знаю, что это замедлит мою базу данных. Я думаю, что эта таблица будет очищена через несколько месяцев, потому что данные в этой таблице больше не будут полезны :) – mirka

+0

Добро пожаловать. Рад, что мы могли бы помочь. –