Как сохранить текст, SVG, HTML, CSS все вместе эффективно
В приложении я использую Fabric.js, который позволяет пользователям писать текст, рисовать SVG, вставлять изображения и т. Д.
Я хочу знать, как лучше всего хранить эти данные.
Требования:
Возможность запрашивать данные (текст), что говорит мне, что я должен хранить их в БД (MySQL на данный момент)
У меня есть изображения, и я нацеливаюсь также на IPad, поэтому изображения важны для их хранения.
SVG и HTML/CSS также будут сохранены.
Я также хочу сделать управление версиями контента, как это делает 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.