Сохранять HTML-контент в базе данных - хорошая идея?

Я создаю проект приложения для блога на Angular 7. Использование облачных функций firebase в качестве бэкэнда и выполнение операций CRUD путем сохранения содержимого html в firebase с использованием компонента Angular - CKEditor.

Похоже это в firebase

content: "<p>Sample Blog Post</p><img src = "someLink">"

а затем я визуализирую эту строку на странице

<div [innerHTML] = "content"></div>

Я думаю, что этот подход называется WYSIWYG (What You See Is What You Get) и работает отлично, но мне кажется, что это не самый эффективный способ.

Я хочу иметь блог-сайт только с сообщениями в блогах, без каких-либо других функций. Есть ли проблема с таким подходом в моем случае? Можете ли вы порекомендовать какое-либо другое решение, если есть проблема?

Спасибо.

Ха-ха, теперь я пытаюсь придумать случай, когда это НЕ хорошая идея. Однажды я работал с парнем, который пытался поместить все приложение в базу данных, включая верхние и нижние колонтитулы страниц, структурные элементы и практически любые другие элементы кода, которые обычно находятся в файле. Пожалуйста, просто ... нет.

JonathanDavidArndt 14.12.2018 16:49
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
6
1
2 508
3

Ответы 3

  1. Нет ничего плохого в вашем подходе к сохранению HTML в базе данных.

    Фактически, так работает Wordpress.

  2. К вашему сведению, «WYSIWYG (What You See Is What You Get)» обычно применяется к таким вещам, как редакторы:

https://en.wikipedia.org/wiki/WYSIWYG

WYSIWYG (/ˈwɪziwɪɡ/ WIZ-ee-wig)[1] is an acronym for "what you see is what you get". In computing, a WYSIWYG editor is a system in which content (text and graphics) can be edited in a form closely resembling its appearance when printed or displayed as a finished product,[2] such as a printed document, web page, or slide presentation.

Для простого веб-сайта блога такое сохранение контента звучит совершенно естественно.

Разметка HTML действительно является самым простым способом, если вы занимаетесь программированием самостоятельно. (Другой способ - уценка, который вы уже используете на этом сайте. Это также достаточно просто, но все же требует дополнительной библиотеки, а текст уценки по-прежнему хранится в базе данных, поэтому вы действительно не сохранили никаких шагов программирования. )

В целях безопасности я бы посоветовал вам ознакомиться с некоторыми функциями вашей платформы, чтобы HTML-теги были проверены, а недействительные - удалены. В Руководстве по PHP есть несколько хороших примеров:

Если вы используете базу данных в реальном времени, это будет плохо, если вы используете базу данных firestore, это сработает.

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

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

Гибридная версия:

  • База данных в реальном времени для хранения каждой напечатанной буквы и ее обновления;
  • Firestore создаст документ с newID;
  • Используйте этот newID также в базе данных реального времени для хранения точки 1;
  • Чтобы получить и сохранить html, используйте firestore, чтобы редактировать и записывать правки, используйте базу данных в реальном времени.

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

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