Мне было предоставлено некоторое содержимое упражнений, которое должно быть последовательно показано пользователю. Пример в простейшей форме показан ниже.
длительность идентификатора ---------------------------------------- 1 прыжок 10 1 2 работает 15 0 3 велосипед 12 0 4 push ups 30 1
Обычно таблицы составляют не менее 100 строк / упражнений, а около 300 таблиц (разные упражнения для разных критериев). У нас нет базы данных переднего конца и обновления непосредственно с помощью dbForge Studio db editor.
Предыдущий разработчик разработал таблицу так, чтобы уникальный столбец идентификаторов также служил порядковым номером. Он также является частью URL-адреса. Например, xxx / exercise / 12 специально ищет актуальную 12-ю строку с id = 12 (он предположил, что все идентификаторы увеличиваются с 1 и находятся в последовательности) в базе данных, а не в строке с id=12
.
Очевидная проблема с этим заключается в том, когда мы хотим добавить упражнение в таблицу, скажем, после упражнения 5, затем добавляем его вручную после 5, И затем необходимо вручную обновлять идентификаторы для всех следующих упражнений, чтобы они были в последовательности. В идеале нам нужно просто добавить строку в таблицу и каким-то образом объяснить, что код php знает, что это упражнение должно появиться после упражнения 5 .
Аналогично, например, если мы удалим упражнение с номером 17, то из url xxx/exercise/17
содержимое не будет обслуживаться. В идеале, id = 18 теперь находится в пятне 17 в последовательности, поэтому он должен обслуживаться этим контентом.
попытки
Я подумал о добавлении другой последовательности столбцов, которая будет рассказывать, в какой последовательности служить. Но опять же я вернулся к квадрату 1, потому что мне придется обновлять порядковые номера после добавления / удаления.
Я также думал о создании другой таблицы и хранении идентификационных номеров в любой последовательности, в которой мы хотим обслуживать контент. – Но я не уверен, что это на самом деле хорошая идея.
Может ли кто-нибудь помочь мне с подходящим дизайном базы данных / таблиц для этой проблемы?
РЕДАКТИРОВАТЬ
Я думаю, что я не был ясен в своем вопросе.
Я не хочу пополнять / изменять порядок ключей. Я знаю, что не следует разрабатывать DB.
BUT Проблема. Если я добавлю содержимое в конце таблицы, то как я могу сказать table / php, что я хочу обслуживать недавно добавленный контент (с id позволяет сказать 127) после id = 15, а не обслуживать его последним.