2017-10-01 5 views
0

Diese Frage bezieht sich nicht auf bestimmte Datenbank-Engine, es geht um tatsächlichen Inhalt.Wie speichern Sie Rich Content in der Datenbank?

Zum Beispiel verwendet Frontend eine Art WYSIWYG-Editor (zum Beispiel CKEditor). Es ist einfach, alles zu speichern, was Benutzer im Editor eingeben, aber dies kann das Design (nicht geschlossenes Tag) oder das Sicherheitsproblem (Tag) beeinträchtigen. Außerdem kann es Bilder geben und wir können sie nicht einfach im selben Feld speichern.

Wir können die meisten Design-/Sicherheitsprobleme mit Markdown umgehen, aber wie man Dateien/Bilder neben Text speichert?

Sollte ich eine andere Tabelle erstellen?

posts 
    id 
    text 
post_images 
    post_id 
    image_id 
    image_path 

Und innen Post Text dieses so etwas wie

Hello, this is [image_id=22][/images/dgdgsdg.jpg] my image 

haben oder es gibt andere bewährte Lösungen?

Alle großen sozialen Netzwerke erlauben eine Art von Formatierung mit angehängten Dateien, aber wie speichern Sie es ohne Kopfschmerzen?

Antwort

0

Wir können die meisten Designs/Sicherheitsfragen umgehen Abschlag mit

Das ist nicht wahr. Markdown kann Inline-HTML enthalten und Sie müssen das generierte HTML weiterhin validieren/bereinigen. Nutzen Sie die Desinfektionsfunktionen Ihres Webframeworks.

Normalerweise würden Sie nur die Bilder auf Ihrem Server speichern, der HTML (oder Markdown) enthält den Bildpfad. Sie können den Dateinamen auch in einen Hash der gesamten Datei ändern. Wiederum, normalerweise gibt es Plugins, die diese Art von Sache für Sie behandeln (z. B. paperclip für Ruby on Rails).

Verwandte Themen