Как сохранить текст, SVG, HTML, CSS все вместе эффективно

В приложении я использую Fabric.js, который позволяет пользователям писать текст, рисовать SVG, вставлять изображения и т. Д.
Я хочу знать, как лучше всего хранить эти данные.

Требования:

  1. Возможность запрашивать данные (текст), что говорит мне, что я должен хранить их в БД (MySQL на данный момент)

  2. У меня есть изображения, и я нацеливаюсь также на IPad, поэтому изображения важны для их хранения.

  3. SVG и HTML/CSS также будут сохранены.

  4. Я также хочу сделать управление версиями контента, как это делает Quora, чтобы пользователь мог видеть изменения с предыдущей версии на текущую. Это также включает управление версиями изображений и SVG.

Мне интересно, как Google Docs делает это, потому что они также хранят наши документы, чертежи и т. Д.

Каков наилучший способ сделать это?

4 ответа

Решение

Я управляю веб-приложением, в котором пользователи генерируют отчеты, и обнаружил, что более эффективно хранить изображения и двоичные файлы в файловой системе и ссылаться на них из базы данных. Элементы, которые находятся в xml или тексте, хранятся в базе данных для облегчения поиска - в вашем случае это будет включать css / html и svg (то есть xml). Используйте базу данных для управления ревизиями.

Можно также проверить эту тему о хранении изображений в базе данных.

Похоже, что Frabic.js использует веб-сервер javascript node.js на сервере - раньше такого не использовал, но вы можете выяснить, какие базы данных проще всего использовать с node.js:

Я не знаю, поможет ли это, но браузер Opera предлагает возможность сохранить веб-страницы в уникальный файл {расширение mht}, при этом все файлы { css, изображения, сценарии и т. д.} сохраняются в кодированном формате base64 для последующего использования {когда документ открыт}... может быть, это может быть способ хранения данных:P

Вы можете взглянуть на базы данных NoSQL, такие как MongoDB или CouchDB

Смотрите также Хранение изображений в магазинах NoSQL

Если вы хотите эффективно запрашивать текст, то, возможно, наиболее эффективно поместить все биты информации в БД по отдельности. Возможно, вам нужно поиграть с OOXML или ODF, который может служить контейнером для всей необходимой вам информации, а затем для хранения XML (например, eXist) для ее хранения и запроса (например, текста). Поскольку эти стандарты основаны на XML, вы можете преобразовать их в HTML (например, здесь или здесь), но написать онлайн-редактор для этого - то, что может сделать монстр, такой как Google.

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