Как хранить вложенные нумерованные абзацы (1, 1.1, 1.1.1)?
Например:
Руководство по контролю панели
1: убедитесь, что панель закрыта.
2: После закрытия откройте другую панель.
2.1: Сделай это и это...
Вы также можете включить в мои требования определенные стили текста и так далее.
В настоящее время я использую Django и Jquery/Bootstrap с базой данных MySQL. В будущем нативное приложение iOS должно будет отображать ту же информацию. Поэтому, если что-то установлено как "1.2.3." в веб-приложении оно должно отображаться в приложении для iOS.
Итак, мой вопрос (и он очень общий): как я могу хранить такие вещи?
Например, если бы я должен был хранить рецепт в базе данных. Как я могу затем визуализировать ингредиенты в уникальном стиле абзаца, после чего следуйте инструкциям в рецепте и так далее.
Если вы посмотрите на Inkling, они делают такую вещь. Я не чувствую, что они хранят каждую главу в файле XML, а затем отображают ее. Разве это не создаст слишком много накладных расходов?
1 ответ
Это общий вопрос, поэтому ответ обязательно общий. То, что вы описываете, представляет собой иерархическую структуру данных: упорядоченную последовательность шагов, каждый из которых может быть родителем последовательности подэтапов. Два стандартных способа обработки этого в MySQL - это либо список смежности, либо структура вложенного множества. Обе эти структуры описаны во многих местах в Интернете. Одна хорошая статья написана Майком Хиллиером.
Это не решает проблемы форматирования, но это больше касается вида данных, которые вы будете хранить на каждом узле в иерархии, и не зависит от того, как представлять саму иерархическую структуру.