Как хранить вложенные нумерованные абзацы (1, 1.1, 1.1.1)?

Например:

Руководство по контролю панели

1: убедитесь, что панель закрыта.

2: После закрытия откройте другую панель.

2.1: Сделай это и это...

Вы также можете включить в мои требования определенные стили текста и так далее.

В настоящее время я использую Django и Jquery/Bootstrap с базой данных MySQL. В будущем нативное приложение iOS должно будет отображать ту же информацию. Поэтому, если что-то установлено как "1.2.3." в веб-приложении оно должно отображаться в приложении для iOS.

Итак, мой вопрос (и он очень общий): как я могу хранить такие вещи?

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

Если вы посмотрите на Inkling, они делают такую ​​вещь. Я не чувствую, что они хранят каждую главу в файле XML, а затем отображают ее. Разве это не создаст слишком много накладных расходов?

1 ответ

Это общий вопрос, поэтому ответ обязательно общий. То, что вы описываете, представляет собой иерархическую структуру данных: упорядоченную последовательность шагов, каждый из которых может быть родителем последовательности подэтапов. Два стандартных способа обработки этого в MySQL - это либо список смежности, либо структура вложенного множества. Обе эти структуры описаны во многих местах в Интернете. Одна хорошая статья написана Майком Хиллиером.

Это не решает проблемы форматирования, но это больше касается вида данных, которые вы будете хранить на каждом узле в иерархии, и не зависит от того, как представлять саму иерархическую структуру.

Другие вопросы по тегам