2016-06-01 2 views
-1

У меня возникла проблема, когда пользователю может понадобиться объединить 2 родительских объекта вместе, соединяющих все дочерние элементы в один родительский элемент, эта часть проста, но мне также нужна возможность вернуть эти изменения обратно, если потребуется ,Возврат изменений в базу данных

Так, например;

Допустим, у меня есть Джон и Дэйв, у них обоих есть по 2 актива, и я хочу передать активы Дэйва Джону, что будет сделано путем простого обмена активом Дейва «OWNERPKID» на Johns ID.

До сих пор существует 2 таблицы Person, Asset, и эта ссылка содержится в таблице активов.

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

Есть ли что-то для обработки этого события?

+1

О какой СУБД вы говорите? –

+0

спасибо за все исправления хаха, как я их применяю :) –

+0

и MS SQL ... –

ответ

0

Добро пожаловать в прекрасный мир Сделок! В SQL (предполагая MSSQL, потому что ничего не было указано) вы можете начать транзакцию, используя команду BEGIN TRANSACTION. Затем есть два варианта закрытия транзакции: вы можете либо COMMIT TRANSACTION, либо ROLLBACK TRANSACTION. COMMIT сохраняет изменения в вашей БД и ROLLBACK возвращает любые изменения, которые были сделаны во время транзакции.

Проведите некоторое исследование транзакций, и я уверен, что вы найдете то, что ищете.

+0

Хмм .... если вы не хотите, чтобы вы сделали изменения, сделайте кучу проверки и, возможно, откат. В этом случае вам нужно будет сделать резервную копию БД, прежде чем вносить изменения, а затем, если потребуется, повторно ВОССТАНОВИТЬ. –

+0

будет ли эта транзакция перенесена на несколько дней? ........ пример, который я дал, является лишь примером, но позволяет сказать, что мы передаем кучу записей другому человеку, а через день мы решили, что хотим вернуть их (если не произойдет никаких транзакций)? –

+0

@ kalimo это очень активная БД, и нам нужно будет иметь определенный набор данных, если это произойдет не во всей БД –

Смежные вопросы