Вы, вероятно, хотите использовать text-shadow
:
h1 {
font-family: Lobster;
font-size: 4.2rem;
text-shadow: 0 0 1px rgba(0,0,0,.27),.1em .2em 7px #bbb;
color: white;
margin: 0;
}
h1 span {
color: #c33;
}
<link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet">
<h1>Use text shadow, <span>don't clone</span> your HTML!</h1>
"Наивный" подход, который Вы предлагаете, является также лучшей практикой!
Принимая во внимание ответ Тони Эндрюса, вы можете альтернативно сохранить «следующий» индекс для каждой записи. Затем, когда вы вытянете их всех, пройдитесь по массиву, следуя по цепочке. Это облегчает перемещение предмета, так как нужно дотронуться максимум до двух рядов.
Недостаток этого подхода заключается в том, что если вам когда-либо понадобится подмножество (например, первые 3 элемента), вам все равно нужно добавить все элементы или использовать цикл SQL. Таким образом, это происходит между воздействием на все строки во время обновления или доступом ко всем элементам во время чтения. Как всегда, измерьте скорость и посмотрите, что лучше для вашей ситуации.
Смотря на ответы Tony Andrew и Mark's, в частности, кажется, что у меня действительно есть только две альтернативы:
Meta: Все эти ответы хороши и корректны, какой я должен выбрать в качестве корректного?
В моих приложениях операции чтения будут происходить гораздо чаще, чем записи. Перейдите с числовым значением, чтобы указать порядок сортировки и справьтесь со стоимостью переупорядочения элементов. Это более чем компенсируется тем фактом, что вы можете эффективно извлекать элементы в правильном порядке для целей отображения (что в типичном приложении происходит чаще, чем использование).
Кроме того, как уже упоминалось, если вы извлекаете подмножество данных (фильтр по типу или что-то), остальные элементы все еще находятся в правильном порядке сортировки.
Помните мантру К.И.С.С.
Да, в реляционной базе данных нет порядка, это одна из фундаментальных концепций. Так что просто нет способа без числового значения или чего-то в этом роде.
Если Вы хотите вновь отобразить их в том же порядке, И Вы хотите, чтобы они смогли к переупорядоченному в любое время, я не думаю, что можно убежать от хранения некоторого значения, которое указывает на приоритет дисплея в базе данных. Я использовал самый подход, который Вы описываете к объектам порядка в FAQ, исследователи, связанные с предоставлением, порядком пунктов в меню...