2014-10-28 3 views
0

Я построил мягкое удаление системы для таблицы, которая содержит следующие столбцы:Поддерживать порядок записей после мягкого удаления

- ID (Auto increments from 1) 
- Category 
- Title 
- Is_Deleted 
- Timestamp (Created) 

образца данных (3 строки):

1 Department Dd1x1 0 2014-10-24 18:41:54 
2 Logistics L2x14 0 2014-10-24 16:55:27 
3 Transit  T4y3 0 2014-10-24 17:09:27 

Мягкого удаляются, и они также работают при обновлении записи (бизнес-требование). Так что, если я обновлю категории «отдел» в «Департамент данных», я так с:

UPDATE categories_latest SET Is_Deleted = 1 WHERE ID = 1; 
INSERT INTO categories_latest(Category, Title, Is_Deleted) VALUES('Department Data', 'Dd1x1', 0); 

сам код работает отлично, но когда я показываю эти данные в Frontend, он изменяет порядок из за счет заказа по ID. Единственный способ, о котором я могу думать, чтобы обойти это, - это иметь дополнительный столбец с переменной «Заказ» какого-либо типа, который запрос должен будет сортировать до извлечения.

Есть ли более простой способ справиться с этой проблемой и позволить оставить порядок записей без изменений?

+0

Не могли бы вы привести пример, как это упорядочено? –

+0

Просто простой оператор выбора, который (по умолчанию) заказывает по ID, является тем, что я использую сейчас! Я могу добавить код, если бы это помогло :) –

ответ

0

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

+0

Это была моя первая идея, но несколько мягких удалений по линии, нет четкой линии, соединяющей текущее значение и самое старое значение. Только способ навигации должен состоять в том, чтобы делать строку из выбранных утверждений, медленно возвращаясь на один шаг за раз, пока не найду ту, которая мне нужна. Исправьте меня, если я ошибаюсь, и есть еще один путь мимо этой проблемы, пожалуйста! :) –

+0

Тогда единственное, что вы можете сделать, это поддерживать отношения, например, связанный список. Первичный ключ «Департамента» будет поддерживаться «Данные отдела», когда он будет изменен, его pk будет поддерживаться со следующим значением и так далее. – JustCoding

+0

Я получил это от вашего ответа, но, как я уже сказал, это становится неэффективным после 4 или 5 изменений. :) –