Как сохранить особый, изменяемый “порядок” в базу данных

Вы, вероятно, хотите использовать 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>

25
задан double-beep 2 February 2019 в 14:41
поделиться

6 ответов

"Наивный" подход, который Вы предлагаете, является также лучшей практикой!

13
ответ дан Tony Andrews 28 November 2019 в 20:45
поделиться

Принимая во внимание ответ Тони Эндрюса, вы можете альтернативно сохранить «следующий» индекс для каждой записи. Затем, когда вы вытянете их всех, пройдитесь по массиву, следуя по цепочке. Это облегчает перемещение предмета, так как нужно дотронуться максимум до двух рядов.

Недостаток этого подхода заключается в том, что если вам когда-либо понадобится подмножество (например, первые 3 элемента), вам все равно нужно добавить все элементы или использовать цикл SQL. Таким образом, это происходит между воздействием на все строки во время обновления или доступом ко всем элементам во время чтения. Как всегда, измерьте скорость и посмотрите, что лучше для вашей ситуации.

12
ответ дан Mark 28 November 2019 в 20:45
поделиться

Смотря на ответы Tony Andrew и Mark's, в частности, кажется, что у меня действительно есть только две альтернативы:

  • Сохранение 'следующего' значения, то, чтобы заставлять объекты вести себя как связанный список (см. ответ Mark's)
    С этим, изменяя порядок является дешевым, но я должен был бы получить объекты, и затем сортируют их по их 'следующему' значению, которое является дорого
  • Сохранение значения 'порядка' (см. ответ Tony Andrew)
    Это делает получение дешевым, но сохранение нового потенциально дорогого порядка, потому что в худшем случае, я должен был бы изменить все стоимости заказов. cletus указывает, что можно было использовать большое количество в форме 2^n для множителя порядка.

Meta: Все эти ответы хороши и корректны, какой я должен выбрать в качестве корректного?

5
ответ дан winsmith 28 November 2019 в 20:45
поделиться

В моих приложениях операции чтения будут происходить гораздо чаще, чем записи. Перейдите с числовым значением, чтобы указать порядок сортировки и справьтесь со стоимостью переупорядочения элементов. Это более чем компенсируется тем фактом, что вы можете эффективно извлекать элементы в правильном порядке для целей отображения (что в типичном приложении происходит чаще, чем использование).

Кроме того, как уже упоминалось, если вы извлекаете подмножество данных (фильтр по типу или что-то), остальные элементы все еще находятся в правильном порядке сортировки.

Помните мантру К.И.С.С.

3
ответ дан Jim Petkus 28 November 2019 в 20:45
поделиться

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

1
ответ дан Ray Hidayat 28 November 2019 в 20:45
поделиться

Если Вы хотите вновь отобразить их в том же порядке, И Вы хотите, чтобы они смогли к переупорядоченному в любое время, я не думаю, что можно убежать от хранения некоторого значения, которое указывает на приоритет дисплея в базе данных. Я использовал самый подход, который Вы описываете к объектам порядка в FAQ, исследователи, связанные с предоставлением, порядком пунктов в меню...

2
ответ дан tvanfosson 28 November 2019 в 20:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: