2012-10-10 5 views
0

Я использую MySQL DBMS. У меня есть Document table and Order table. relationship между ними one to many.MySQL удаляет, обновляет или вставляет строки

При создании документа пользователь может insert заказывать Order table для этого документа. Он вступает в силу для таблицы, когда пользователь нажимает кнопку регистрации. Но после этого пользователь может редактировать этот документ. Он может изменять, обновлять, удалять заказы.

При нажатии на кнопку «щелкнуть» это приведет к изменению таблицы заказов. При редактировании я хочу удалить все заказы для этого документа, а затем вставить снова. Но мне это не кажется хорошим, например, если есть 100 заказов и пользователь меняет только 1 строку, мне нужно удалить 100 строк и снова вставить 100 строк, или если пользователь добавляет новый порядок, мне нужно удалить 100 строк и добавить 101 строку.

Каков наилучший способ справиться с этой ситуацией? Заметьте, что я использую C#. Спасибо заранее.

+1

Вы поняли, что я имел в виду? Если вы понимаете, вы можете ответить, если вы этого не сделаете, я могу уточнить для вас. –

+2

Я просто хотел, чтобы вы поставили свой вопрос на лил. Можете ли вы отформатировать? Это то, что я имел в виду. В тот момент, когда я увидел ваш вопрос, хотя это хорошо и в моей области, я не в состоянии читать этот непрерывный поток текста. Понял? Юзабилити, я имел в виду! –

+0

Английский не мой первый язык. Я понял, я буду принимать во внимание в следующий раз. –

ответ

1

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

Таким образом, вы можете редактировать документ, и всякий раз, когда вы редактируете документ, создается новая версия, и для этой версии будут созданы новые заказы. Уникальный идентификатор всей версии останется таким же. Короче говоря, документ будет идентифицироваться уникальным идентификатором и версией.

У вашего предлагаемого метода возникает проблема, то есть при изменении документа вы будете повторно вставлять все заказы, но никогда не сможете отследить исходный документ, для которого были заказы.

+0

Не думаете ли вы, что он заполнит базу данных так быстро? Есть ли другое решение? –

+0

Нет, на самом деле у вас нет избыточной записи, но только те, которые требуются. –

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