Я искал StackOverflow для ответа на этот вопрос, и я был удивлен, обнаружив очень мало информации о том, что кажется очень распространенной задачей
Допустим, у меня естьприложение, которое позволяет пользователям создавать сообщения.Эти сообщения, конечно, могут содержать текст, но я также хочу, чтобы пользователи могли вставлять изображения и, возможно, видео.
Итак, вот дилемма.Первая идея, которая приходит на ум при хранении этих постов, - создать такую таблицу:
CREATE TABLE posts(id INTEGER PRIMARY KEY AUTO_INCREMENT, owner VARCHAR(36) NOT NULL, message VARCHAR(MAX), _timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
id
- это идентификатор самого поста.. owner
- это идентификатор лица, создавшего публикацию. message
содержит сообщение в виде текста. _timestamp
представляет созданное время.
Однако, поскольку SQL не был создан для хранения изображений и других файлов, изображения хранятся вне базы данных.Например, предположим, что они хранятся с использованием продукта, аналогичного Google Cloud Storage .
Итак, вопрос в том, как отформатировать сообщение в такой форме.каким образом они содержат данные (например, ссылку), которые будут указывать на изображения, без необходимости делать слишком много работы над кодом внешнего интерфейса?(И не давая пользователю знать, что он делает что-то кроме вставки изображения).
Из опыта работы с GitHub и StackOverflow Markdown, очевидно, хорош, но не так удобен для пользователя, как я.я хочу, и не работаю с изображениями так, как я хочу.
Я думал об использовании HTML для форматирования сообщения, но это приводит к основным проблемам:
- Как хранить HTML таким образом, чтобы предотвратить XSS (межсайтовый скриптинг)?Должен ли я просто избегать всего таким образом, чтобы его можно было читать в HTML как внешний интерфейс?
- Допустим, это приложение является мобильным приложением.Это означает, что мне придется либо создать свой собственный анализатор HTML, либо найти для него существующую библиотеку.
Так что же лучше для этого делать?
Я постоянно вижу этот тип функций, так что же используют эти люди (например, Facebook, Google и т. Д.)?
Я не только столкнулся с этой проблемой, но я чувствую, что должен быть хорошийответьте на это в StackOverflow для тех, кто сталкивается с этой проблемой.
В частности, я хочу знать, является ли HTML хорошим вариантом, или я должен рассмотреть что-то еще.На данный момент я планирую использовать обычный HTML и делать открытые URI для объектов Cloud Storage