Je construis un site Web similaire à Craigslist. Je voudrais savoir comment stocker le texte au format html (gras/italique/taille de police etc) dans une base de données sql 2008? En d'autres termes, l'utilisateur entrerait son texte, le formaterait avec la taille de police, le gras, etc. et enregistrerait l'information. Quel est le moyen le plus efficace de stocker cela dans une base de données?Stockage de texte au format HTML dans la base de données
Répondre
enregistrer dans un champ nvarchar (max). Assurez-vous d'utiliser des requêtes paramétrées pour la sécurité. Lire http://www.aspnet101.com/2007/03/parameterized-queries-in-asp-net/
Je probablement stocker le texte d'annonce comme nvarchar (max) datatype
Je dirais qu'il suffit d'utiliser un type de données NVARCHAR (max) ou texte par opposition au type de données XML.
Cela permettra un accès facile au contenu où le type de données xml aurait besoin d'être converti quelque part le long de la ligne.
Bon point. Il n'y a aucune garantie que le HTML entré sera bien formé XML –
Je le bourrerais simplement, tel quel, dans un champ NVARCHAR (MAX).
Bien sûr, vous utiliseriez une requête paramétrée pour cela.
Je le mettrais dans un champ nvarchar (MAX) si vous utilisez SQL Server 2008 ou supérieur autrement. Si vous utilisez SQL Server 2005 ou une version antérieure et si le nombre de caractères est inférieur à 2000, vous pouvez utiliser un type nvarchar (2000). Si cela est trop restrictif, utilisez un type de texte.
Assurez-vous de n'autoriser qu'un nombre limité de balises HTML sinon vous risquez d'obtenir une injection de texte croisé. Par exemple, n'autorisez pas votre utilisateur à entrer les tags <script>
ou <style>
. Je vous suggère de lire plus sur l'injection de script avant de passer à autre chose! Bonne chance
c'est un bon point. – user279521
nvarchar (max) plutôt que varchar (max) car cela permettra de stocker tout texte Unicode tel que les caractères chinois par exemple. –
il n'y a aucune raison de l'encoder sur le champ SQL :) vous mangez beaucoup d'espace de cette façon ... sans raison et probablement créer des erreurs ou lire écrire ... – Aristos